<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns:yui="http://yuilibrary.com/rdf/1.0/yui.rdf#">
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
	<title>API: WireIt   Terminal.js </title>

	<link rel="stylesheet" type="text/css" href="assets/reset-fonts-grids-min.css?stamp=" />
	<link rel="stylesheet" type="text/css" href="assets/api.css?stamp=" />

    <script type="text/javascript" src="assets/api-js?stamp="></script>
    <script type="text/javascript" src="assets/ac-js?stamp="></script>
</head>

<body id="yahoo-com">

<div id="doc3" class="yui-t2">
	<div id="hd">
        <h1><a href="http://javascript.neyric.com/wireit" title="WireItLibrary">WireItLibrary</a></h1>
        <h3>WireIt&nbsp; <span class="subtitle">0.5.0</span></h3>
        <a href="./index.html" title="WireItLibrary">WireItLibrary</a> 
            &gt; <a href="./module_wireit.html" title="WireIt">WireIt</a>
                
                 &gt; Terminal.js (source view) 
        <form onsubmit="return false">
            <div id="propertysearch">
                Search: <input autocomplete="off" id="searchinput" />
                <div id="searchresults">
                    &nbsp;
                </div>
            </div>
        </form>
	</div>

	<div id="bd">
		<div id="yui-main">
			<div class="yui-b">
            <form action="#" name="yui-classopts-form" method="get" id="yui-classopts-form">
                <fieldset>
                    <legend>Filters</legend>
                <span class="classopts"><input type="checkbox" name="show_private" id="show_private" /> <label for="show_private">Show Private</label></span>
                <span class="classopts"><input type="checkbox" name="show_protected" id="show_protected" /> <label for="show_protected">Show Protected</label></span>
                <span class="classopts"><input type="checkbox" name="show_deprecated" id="show_deprecated" /> <label for="show_deprecated">Show Deprecated</label></span>
                </fieldset>
            </form>

                    <div id="srcout">
                        <style>
                            #doc3 .classopts { display:none; }
                        </style>
<div class="highlight"><pre><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>

   <span class="kd">var</span> <span class="nx">util</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="o">;</span>
   <span class="kd">var</span> <span class="nx">Event</span> <span class="o">=</span> <span class="nx">util</span><span class="p">.</span><span class="nx">Event</span><span class="o">,</span> <span class="nx">lang</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">lang</span><span class="o">,</span> <span class="nx">Dom</span> <span class="o">=</span> <span class="nx">util</span><span class="p">.</span><span class="nx">Dom</span><span class="o">,</span> <span class="nx">CSS_PREFIX</span> <span class="o">=</span> <span class="s2">&quot;WireIt-&quot;</span><span class="o">;</span>


   <span class="c">/**</span>
<span class="c">    * Scissors widget to cut wires</span>
<span class="c">    * @class Scissors</span>
<span class="c">    * @namespace WireIt</span>
<span class="c">    * @extends YAHOO.util.Element</span>
<span class="c">    * @constructor</span>
<span class="c">    * @param {WireIt.Terminal} terminal Associated terminal</span>
<span class="c">    * @param {Object} oConfigs </span>
<span class="c">    */</span>
   <span class="nx">WireIt</span><span class="p">.</span><span class="nx">Scissors</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">terminal</span><span class="o">,</span> <span class="nx">oConfigs</span><span class="p">)</span> <span class="p">{</span>
      <span class="nx">WireIt</span><span class="p">.</span><span class="nx">Scissors</span><span class="p">.</span><span class="nx">superclass</span><span class="p">.</span><span class="nx">constructor</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="o">,</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">&#39;div&#39;</span><span class="p">)</span><span class="o">,</span> <span class="nx">oConfigs</span><span class="p">);</span>

      <span class="c">/**</span>
<span class="c">       * The terminal it is associated to</span>
<span class="c">       * @property _terminal</span>
<span class="c">       * @type {WireIt.Terminal}</span>
<span class="c">       */</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">_terminal</span> <span class="o">=</span> <span class="nx">terminal</span><span class="o">;</span>
      
      <span class="k">this</span><span class="p">.</span><span class="nx">initScissors</span><span class="p">();</span>
   <span class="p">};</span>
	<span class="nx">WireIt</span><span class="p">.</span><span class="nx">Scissors</span><span class="p">.</span><span class="nx">visibleInstance</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
   <span class="nx">lang</span><span class="p">.</span><span class="nx">extend</span><span class="p">(</span><span class="nx">WireIt</span><span class="p">.</span><span class="nx">Scissors</span><span class="o">,</span> <span class="nx">util</span><span class="p">.</span><span class="nx">Element</span><span class="o">,</span> <span class="p">{</span>
      
      <span class="c">/**</span>
<span class="c">       * Init the scissors</span>
<span class="c">       * @method initScissors</span>
<span class="c">       */</span>
      <span class="nx">initScissors</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
         
         <span class="c">// Display the cut button</span>
         <span class="k">this</span><span class="p">.</span><span class="nx">hideNow</span><span class="p">();</span>
         <span class="k">this</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">CSS_PREFIX</span><span class="o">+</span><span class="s2">&quot;Wire-scissors&quot;</span><span class="p">);</span>
         
         <span class="c">// The scissors are within the terminal element</span>
         <span class="k">this</span><span class="p">.</span><span class="nx">appendTo</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_terminal</span><span class="p">.</span><span class="nx">container</span> <span class="o">?</span> <span class="k">this</span><span class="p">.</span><span class="nx">_terminal</span><span class="p">.</span><span class="nx">container</span><span class="p">.</span><span class="nx">layer</span><span class="p">.</span><span class="nx">el</span> <span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">_terminal</span><span class="p">.</span><span class="nx">el</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">);</span>

         <span class="c">// Ajoute un listener sur le scissor:</span>
         <span class="k">this</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s2">&quot;mouseover&quot;</span><span class="o">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">show</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="p">);</span>
         <span class="k">this</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s2">&quot;mouseout&quot;</span><span class="o">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">hide</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="p">);</span>
         <span class="k">this</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s2">&quot;click&quot;</span><span class="o">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">scissorClick</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="p">);</span>
         
         <span class="c">// On mouseover/mouseout to display/hide the scissors</span>
         <span class="nx">Event</span><span class="p">.</span><span class="nx">addListener</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_terminal</span><span class="p">.</span><span class="nx">el</span><span class="o">,</span> <span class="s2">&quot;mouseover&quot;</span><span class="o">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">mouseOver</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="p">);</span>
         <span class="nx">Event</span><span class="p">.</span><span class="nx">addListener</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_terminal</span><span class="p">.</span><span class="nx">el</span><span class="o">,</span> <span class="s2">&quot;mouseout&quot;</span><span class="o">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">hide</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="p">);</span>
      <span class="p">}</span><span class="o">,</span>
      
      <span class="c">/**</span>
<span class="c">       * @method setPosition</span>
<span class="c">       */</span>
      <span class="nx">setPosition</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
         <span class="kd">var</span> <span class="nx">pos</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_terminal</span><span class="p">.</span><span class="nx">getXY</span><span class="p">();</span>
         <span class="k">this</span><span class="p">.</span><span class="nx">setStyle</span><span class="p">(</span><span class="s2">&quot;left&quot;</span><span class="o">,</span> <span class="p">(</span><span class="nx">pos</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="k">this</span><span class="p">.</span><span class="nx">_terminal</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">direction</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">*</span><span class="mi">30</span><span class="o">-</span><span class="mi">8</span><span class="p">)</span><span class="o">+</span><span class="s2">&quot;px&quot;</span><span class="p">);</span>
         <span class="k">this</span><span class="p">.</span><span class="nx">setStyle</span><span class="p">(</span><span class="s2">&quot;top&quot;</span><span class="o">,</span> <span class="p">(</span><span class="nx">pos</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">+</span><span class="k">this</span><span class="p">.</span><span class="nx">_terminal</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">direction</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">*</span><span class="mi">30</span><span class="o">-</span><span class="mi">8</span><span class="p">)</span><span class="o">+</span><span class="s2">&quot;px&quot;</span><span class="p">);</span>
      <span class="p">}</span><span class="o">,</span>
      <span class="c">/**</span>
<span class="c">       * @method mouseOver</span>
<span class="c">       */</span>
      <span class="nx">mouseOver</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
         <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_terminal</span><span class="p">.</span><span class="nx">wires</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span>  <span class="p">{</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">show</span><span class="p">();</span>
         <span class="p">}</span>
      <span class="p">}</span><span class="o">,</span>

      <span class="c">/**</span>
<span class="c">       * @method scissorClick</span>
<span class="c">       */</span>
      <span class="nx">scissorClick</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
         <span class="k">this</span><span class="p">.</span><span class="nx">_terminal</span><span class="p">.</span><span class="nx">removeAllWires</span><span class="p">();</span>
         <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">terminalTimeout</span><span class="p">)</span> <span class="p">{</span> <span class="k">this</span><span class="p">.</span><span class="nx">terminalTimeout</span><span class="p">.</span><span class="nx">cancel</span><span class="p">();</span> <span class="p">}</span>
         <span class="k">this</span><span class="p">.</span><span class="nx">hideNow</span><span class="p">();</span>
      <span class="p">}</span><span class="o">,</span>   
      <span class="c">/**</span>
<span class="c">       * @method show</span>
<span class="c">       */</span>
      <span class="nx">show</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
         <span class="k">this</span><span class="p">.</span><span class="nx">setPosition</span><span class="p">();</span>
         <span class="k">this</span><span class="p">.</span><span class="nx">setStyle</span><span class="p">(</span><span class="s1">&#39;display&#39;</span><span class="o">,</span><span class="s1">&#39;&#39;</span><span class="p">);</span>
			
			<span class="k">if</span><span class="p">(</span><span class="nx">WireIt</span><span class="p">.</span><span class="nx">Scissors</span><span class="p">.</span><span class="nx">visibleInstance</span> <span class="o">&amp;&amp;</span> <span class="nx">WireIt</span><span class="p">.</span><span class="nx">Scissors</span><span class="p">.</span><span class="nx">visibleInstance</span> <span class="o">!=</span> <span class="k">this</span><span class="p">)</span> <span class="p">{</span>
				<span class="k">if</span><span class="p">(</span><span class="nx">WireIt</span><span class="p">.</span><span class="nx">Scissors</span><span class="p">.</span><span class="nx">visibleInstance</span><span class="p">.</span><span class="nx">terminalTimeout</span><span class="p">)</span> <span class="p">{</span> <span class="nx">WireIt</span><span class="p">.</span><span class="nx">Scissors</span><span class="p">.</span><span class="nx">visibleInstance</span><span class="p">.</span><span class="nx">terminalTimeout</span><span class="p">.</span><span class="nx">cancel</span><span class="p">();</span> <span class="p">}</span>
				<span class="nx">WireIt</span><span class="p">.</span><span class="nx">Scissors</span><span class="p">.</span><span class="nx">visibleInstance</span><span class="p">.</span><span class="nx">hideNow</span><span class="p">();</span> 
			<span class="p">}</span>
			<span class="nx">WireIt</span><span class="p">.</span><span class="nx">Scissors</span><span class="p">.</span><span class="nx">visibleInstance</span> <span class="o">=</span> <span class="k">this</span><span class="o">;</span>
			
         <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">terminalTimeout</span><span class="p">)</span> <span class="p">{</span> <span class="k">this</span><span class="p">.</span><span class="nx">terminalTimeout</span><span class="p">.</span><span class="nx">cancel</span><span class="p">();</span> <span class="p">}</span>
      <span class="p">}</span><span class="o">,</span>
      <span class="c">/**</span>
<span class="c">       * @method hide</span>
<span class="c">       */</span>
      <span class="nx">hide</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
         <span class="k">this</span><span class="p">.</span><span class="nx">terminalTimeout</span> <span class="o">=</span> <span class="nx">lang</span><span class="p">.</span><span class="nx">later</span><span class="p">(</span><span class="mi">700</span><span class="o">,</span><span class="k">this</span><span class="o">,</span><span class="k">this</span><span class="p">.</span><span class="nx">hideNow</span><span class="p">);</span>
      <span class="p">}</span><span class="o">,</span>
      <span class="c">/**</span>
<span class="c">       * @method hideNow</span>
<span class="c">       */</span>
      <span class="nx">hideNow</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
			<span class="nx">WireIt</span><span class="p">.</span><span class="nx">Scissors</span><span class="p">.</span><span class="nx">visibleInstance</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
         <span class="k">this</span><span class="p">.</span><span class="nx">setStyle</span><span class="p">(</span><span class="s1">&#39;display&#39;</span><span class="o">,</span><span class="s1">&#39;none&#39;</span><span class="p">);</span>
      <span class="p">}</span>

   <span class="p">});</span>




   
   
<span class="c">/**</span>
<span class="c"> * This class is used for wire edition. It inherits from YAHOO.util.DDProxy and acts as a &quot;temporary&quot; Terminal.</span>
<span class="c"> * @class TerminalProxy</span>
<span class="c"> * @namespace WireIt</span>
<span class="c"> * @extends YAHOO.util.DDProxy</span>
<span class="c"> * @constructor</span>
<span class="c"> * @param {WireIt.Terminal} terminal Parent terminal</span>
<span class="c"> * @param {Object} options Configuration object (see &quot;termConfig&quot; property for details)</span>
<span class="c"> */</span>
<span class="nx">WireIt</span><span class="p">.</span><span class="nx">TerminalProxy</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">terminal</span><span class="o">,</span> <span class="nx">options</span><span class="p">)</span> <span class="p">{</span>
   
   <span class="c">/**</span>
<span class="c">    * Reference to the terminal parent</span>
<span class="c">    */</span>
   <span class="k">this</span><span class="p">.</span><span class="nx">terminal</span> <span class="o">=</span> <span class="nx">terminal</span><span class="o">;</span>
   
   <span class="c">/**</span>
<span class="c">    * Object containing the configuration object</span>
<span class="c">    * &lt;ul&gt;</span>
<span class="c">    *   &lt;li&gt;type: &#39;type&#39; of this terminal. If no &quot;allowedTypes&quot; is specified in the options, the terminal will only connect to the same type of terminal&lt;/li&gt;</span>
<span class="c">    *   &lt;li&gt;allowedTypes: list of all the allowed types that we can connect to.&lt;/li&gt;</span>
<span class="c">    *   &lt;li&gt;{Integer} terminalProxySize: size of the drag drop proxy element. default is 10 for &quot;10px&quot;&lt;/li&gt;</span>
<span class="c">    * &lt;/ul&gt;</span>
<span class="c">    * @property termConfig</span>
<span class="c">    */</span>
   <span class="c">// WARNING: the object config cannot be called &quot;config&quot; because YAHOO.util.DDProxy already has a &quot;config&quot; property</span>
   <span class="k">this</span><span class="p">.</span><span class="nx">termConfig</span> <span class="o">=</span> <span class="nx">options</span> <span class="o">||</span> <span class="p">{};</span>
   
   <span class="k">this</span><span class="p">.</span><span class="nx">terminalProxySize</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">terminalProxySize</span> <span class="o">||</span> <span class="mi">10</span><span class="o">;</span>
   
   <span class="c">/**</span>
<span class="c">    * Object that emulate a terminal which is following the mouse</span>
<span class="c">    */</span>
   <span class="k">this</span><span class="p">.</span><span class="nx">fakeTerminal</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
   
   <span class="c">// Init the DDProxy</span>
   <span class="nx">WireIt</span><span class="p">.</span><span class="nx">TerminalProxy</span><span class="p">.</span><span class="nx">superclass</span><span class="p">.</span><span class="nx">constructor</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="o">,</span><span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="p">.</span><span class="nx">el</span><span class="o">,</span> <span class="kc">undefined</span><span class="o">,</span> <span class="p">{</span>
      <span class="nx">dragElId</span><span class="o">:</span> <span class="s2">&quot;WireIt-TerminalProxy&quot;</span><span class="o">,</span>
      <span class="nx">resizeFrame</span><span class="o">:</span> <span class="kc">false</span><span class="o">,</span>
      <span class="nx">centerFrame</span><span class="o">:</span> <span class="kc">true</span>
   <span class="p">});</span>
<span class="p">};</span>

<span class="c">// Mode Intersect to get the DD objects</span>
<span class="nx">util</span><span class="p">.</span><span class="nx">DDM</span><span class="p">.</span><span class="nx">mode</span> <span class="o">=</span> <span class="nx">util</span><span class="p">.</span><span class="nx">DDM</span><span class="p">.</span><span class="nx">INTERSECT</span><span class="o">;</span>

<span class="nx">lang</span><span class="p">.</span><span class="nx">extend</span><span class="p">(</span><span class="nx">WireIt</span><span class="p">.</span><span class="nx">TerminalProxy</span><span class="o">,</span> <span class="nx">util</span><span class="p">.</span><span class="nx">DDProxy</span><span class="o">,</span> <span class="p">{</span>
   
   <span class="c">/**</span>
<span class="c">    * Took this method from the YAHOO.util.DDProxy class</span>
<span class="c">    * to overwrite the creation of the proxy Element with our custom size</span>
<span class="c">    * @method createFrame</span>
<span class="c">    */</span>
   <span class="nx">createFrame</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">self</span><span class="o">=</span><span class="k">this</span><span class="o">,</span> <span class="nx">body</span><span class="o">=</span><span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="o">;</span>
        <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">body</span> <span class="o">||</span> <span class="o">!</span><span class="nx">body</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">setTimeout</span><span class="p">(</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> <span class="nx">self</span><span class="p">.</span><span class="nx">createFrame</span><span class="p">();</span> <span class="p">}</span><span class="o">,</span> <span class="mi">50</span> <span class="p">);</span>
            <span class="k">return</span><span class="o">;</span>
        <span class="p">}</span>
        <span class="kd">var</span> <span class="nx">div</span><span class="o">=</span><span class="k">this</span><span class="p">.</span><span class="nx">getDragEl</span><span class="p">()</span><span class="o">,</span> <span class="nx">Dom</span><span class="o">=</span><span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Dom</span><span class="o">;</span>
        <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">div</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">div</span>    <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s2">&quot;div&quot;</span><span class="p">);</span>
            <span class="nx">div</span><span class="p">.</span><span class="nx">id</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">dragElId</span><span class="o">;</span>
            <span class="kd">var</span> <span class="nx">s</span>  <span class="o">=</span> <span class="nx">div</span><span class="p">.</span><span class="nx">style</span><span class="o">;</span>
            <span class="nx">s</span><span class="p">.</span><span class="nx">position</span>   <span class="o">=</span> <span class="s2">&quot;absolute&quot;</span><span class="o">;</span>
            <span class="nx">s</span><span class="p">.</span><span class="nx">visibility</span> <span class="o">=</span> <span class="s2">&quot;hidden&quot;</span><span class="o">;</span>
            <span class="nx">s</span><span class="p">.</span><span class="nx">cursor</span>     <span class="o">=</span> <span class="s2">&quot;move&quot;</span><span class="o">;</span>
            <span class="nx">s</span><span class="p">.</span><span class="nx">border</span>     <span class="o">=</span> <span class="s2">&quot;2px solid #aaa&quot;</span><span class="o">;</span>
            <span class="nx">s</span><span class="p">.</span><span class="nx">zIndex</span>     <span class="o">=</span> <span class="mi">999</span><span class="o">;</span>
            <span class="kd">var</span> <span class="nx">size</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">terminalProxySize</span><span class="o">+</span><span class="s2">&quot;px&quot;</span><span class="o">;</span>
            <span class="nx">s</span><span class="p">.</span><span class="nx">height</span>     <span class="o">=</span> <span class="nx">size</span><span class="o">;</span> 
            <span class="nx">s</span><span class="p">.</span><span class="nx">width</span>      <span class="o">=</span> <span class="nx">size</span><span class="o">;</span>
            <span class="kd">var</span> <span class="nx">_data</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">&#39;div&#39;</span><span class="p">);</span>
            <span class="nx">Dom</span><span class="p">.</span><span class="nx">setStyle</span><span class="p">(</span><span class="nx">_data</span><span class="o">,</span> <span class="s1">&#39;height&#39;</span><span class="o">,</span> <span class="s1">&#39;100%&#39;</span><span class="p">);</span>
            <span class="nx">Dom</span><span class="p">.</span><span class="nx">setStyle</span><span class="p">(</span><span class="nx">_data</span><span class="o">,</span> <span class="s1">&#39;width&#39;</span><span class="o">,</span> <span class="s1">&#39;100%&#39;</span><span class="p">);</span>
            <span class="nx">Dom</span><span class="p">.</span><span class="nx">setStyle</span><span class="p">(</span><span class="nx">_data</span><span class="o">,</span> <span class="s1">&#39;background-color&#39;</span><span class="o">,</span> <span class="s1">&#39;#ccc&#39;</span><span class="p">);</span>
            <span class="nx">Dom</span><span class="p">.</span><span class="nx">setStyle</span><span class="p">(</span><span class="nx">_data</span><span class="o">,</span> <span class="s1">&#39;opacity&#39;</span><span class="o">,</span> <span class="s1">&#39;0&#39;</span><span class="p">);</span>
            <span class="nx">div</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">_data</span><span class="p">);</span>
            <span class="nx">body</span><span class="p">.</span><span class="nx">insertBefore</span><span class="p">(</span><span class="nx">div</span><span class="o">,</span> <span class="nx">body</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">);</span>
        <span class="p">}</span>
    <span class="p">}</span><span class="o">,</span>
   
   <span class="c">/**</span>
<span class="c">    * @method startDrag</span>
<span class="c">    */</span>
   <span class="nx">startDrag</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
      
      <span class="c">// If only one wire admitted, we remove the previous wire</span>
      <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">nMaxWires</span> <span class="o">==</span> <span class="mi">1</span> <span class="o">&amp;&amp;</span> <span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="p">.</span><span class="nx">wires</span><span class="p">.</span><span class="nx">length</span> <span class="o">==</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
         <span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="p">.</span><span class="nx">wires</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">remove</span><span class="p">();</span>
      <span class="p">}</span>
      <span class="c">// If the number of wires is at its maximum, prevent editing...</span>
      <span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="p">.</span><span class="nx">wires</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;=</span> <span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">nMaxWires</span><span class="p">)</span> <span class="p">{</span>
         <span class="k">return</span><span class="o">;</span>
      <span class="p">}</span>
      
      <span class="kd">var</span> <span class="nx">halfProxySize</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">terminalProxySize</span><span class="o">/</span><span class="mi">2</span><span class="o">;</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">fakeTerminal</span> <span class="o">=</span> <span class="p">{</span>
         <span class="nx">options</span><span class="o">:</span> <span class="p">{</span><span class="nx">direction</span><span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">fakeDirection</span><span class="p">}</span><span class="o">,</span>
         <span class="nx">pos</span><span class="o">:</span> <span class="p">[</span><span class="mi">200</span><span class="o">,</span><span class="mi">200</span><span class="p">]</span><span class="o">,</span> 
         <span class="nx">addWire</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{}</span><span class="o">,</span>
         <span class="nx">removeWire</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{}</span><span class="o">,</span>
         <span class="nx">getXY</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> 
            <span class="kd">var</span> <span class="nx">layers</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getElementsByClassName</span><span class="p">(</span><span class="s1">&#39;WireIt-Layer&#39;</span><span class="p">);</span>
            <span class="k">if</span><span class="p">(</span><span class="nx">layers</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
               <span class="kd">var</span> <span class="nx">orig</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getXY</span><span class="p">(</span><span class="nx">layers</span><span class="p">[</span><span class="mi">0</span><span class="p">]);</span>
               <span class="k">return</span> <span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">pos</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">-</span><span class="nx">orig</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="nx">halfProxySize</span><span class="o">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">pos</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="nx">orig</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">+</span><span class="nx">halfProxySize</span><span class="p">];</span> 
            <span class="p">}</span>
            <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">pos</span><span class="o">;</span>
         <span class="p">}</span>
      <span class="p">};</span>
      
      <span class="kd">var</span> <span class="nx">parentEl</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="p">.</span><span class="nx">parentEl</span><span class="p">.</span><span class="nx">parentNode</span><span class="o">;</span>
      <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="p">.</span><span class="nx">container</span><span class="p">)</span> <span class="p">{</span>
         <span class="nx">parentEl</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="p">.</span><span class="nx">container</span><span class="p">.</span><span class="nx">layer</span><span class="p">.</span><span class="nx">el</span><span class="o">;</span>
      <span class="p">}</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">editingWire</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WireIt</span><span class="p">.</span><span class="nx">Wire</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="o">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">fakeTerminal</span><span class="o">,</span> <span class="nx">parentEl</span><span class="o">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">editingWireConfig</span><span class="p">);</span>
      <span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">editingWire</span><span class="p">.</span><span class="nx">element</span><span class="o">,</span> <span class="nx">CSS_PREFIX</span><span class="o">+</span><span class="s1">&#39;Wire-editing&#39;</span><span class="p">);</span>
   <span class="p">}</span><span class="o">,</span>
   
   <span class="c">/**</span>
<span class="c">    * @method onDrag</span>
<span class="c">    */</span>
   <span class="nx">onDrag</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span>
      
      <span class="c">// Prevention when the editing wire could not be created (due to nMaxWires)</span>
      <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">editingWire</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span><span class="o">;</span> <span class="p">}</span>
      
      <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="p">.</span><span class="nx">container</span><span class="p">)</span> <span class="p">{</span>
         <span class="kd">var</span> <span class="nx">obj</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="p">.</span><span class="nx">container</span><span class="p">.</span><span class="nx">layer</span><span class="p">.</span><span class="nx">el</span><span class="o">;</span>
         <span class="kd">var</span> <span class="nx">curleft</span> <span class="o">=</span> <span class="nx">curtop</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
        	<span class="k">if</span> <span class="p">(</span><span class="nx">obj</span><span class="p">.</span><span class="nx">offsetParent</span><span class="p">)</span> <span class="p">{</span>
        		<span class="k">do</span> <span class="p">{</span>
        			<span class="nx">curleft</span> <span class="o">+=</span> <span class="nx">obj</span><span class="p">.</span><span class="nx">offsetLeft</span><span class="o">;</span>
        			<span class="nx">curtop</span> <span class="o">+=</span> <span class="nx">obj</span><span class="p">.</span><span class="nx">offsetTop</span><span class="o">;</span>
        			<span class="nx">obj</span> <span class="o">=</span> <span class="nx">obj</span><span class="p">.</span><span class="nx">offsetParent</span> <span class="o">;</span>
        		<span class="p">}</span> <span class="k">while</span> <span class="p">(</span> <span class="nx">obj</span> <span class="o">=</span> <span class="nx">obj</span><span class="p">.</span><span class="nx">offsetParent</span> <span class="p">);</span>
        	<span class="p">}</span>
         <span class="k">this</span><span class="p">.</span><span class="nx">fakeTerminal</span><span class="p">.</span><span class="nx">pos</span> <span class="o">=</span> <span class="p">[</span><span class="nx">e</span><span class="p">.</span><span class="nx">clientX</span><span class="o">-</span><span class="nx">curleft</span><span class="o">+</span><span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="p">.</span><span class="nx">container</span><span class="p">.</span><span class="nx">layer</span><span class="p">.</span><span class="nx">el</span><span class="p">.</span><span class="nx">scrollLeft</span><span class="o">,</span>
                                  <span class="nx">e</span><span class="p">.</span><span class="nx">clientY</span><span class="o">-</span><span class="nx">curtop</span><span class="o">+</span><span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="p">.</span><span class="nx">container</span><span class="p">.</span><span class="nx">layer</span><span class="p">.</span><span class="nx">el</span><span class="p">.</span><span class="nx">scrollTop</span><span class="p">];</span>
      <span class="p">}</span>
      <span class="k">else</span> <span class="p">{</span>
         <span class="k">this</span><span class="p">.</span><span class="nx">fakeTerminal</span><span class="p">.</span><span class="nx">pos</span> <span class="o">=</span> <span class="p">(</span><span class="nx">YAHOO</span><span class="p">.</span><span class="nx">env</span><span class="p">.</span><span class="nx">ua</span><span class="p">.</span><span class="nx">ie</span><span class="p">)</span> <span class="o">?</span> <span class="p">[</span><span class="nx">e</span><span class="p">.</span><span class="nx">clientX</span><span class="o">,</span> <span class="nx">e</span><span class="p">.</span><span class="nx">clientY</span><span class="p">]</span> <span class="o">:</span> <span class="p">[</span><span class="nx">e</span><span class="p">.</span><span class="nx">clientX</span><span class="o">+</span><span class="nb">window</span><span class="p">.</span><span class="nx">pageXOffset</span><span class="o">,</span> <span class="nx">e</span><span class="p">.</span><span class="nx">clientY</span><span class="o">+</span><span class="nb">window</span><span class="p">.</span><span class="nx">pageYOffset</span><span class="p">];</span>
         <span class="c">//this.fakeTerminal.pos = [e.clientX, e.clientY];</span>
      <span class="p">}</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">editingWire</span><span class="p">.</span><span class="nx">redraw</span><span class="p">();</span>
   <span class="p">}</span><span class="o">,</span>
   
   
   <span class="c">/**</span>
<span class="c">    * @method endDrag</span>
<span class="c">    */</span>
   <span class="nx">endDrag</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span>
      <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">editingWire</span><span class="p">)</span> <span class="p">{</span>
         <span class="k">this</span><span class="p">.</span><span class="nx">editingWire</span><span class="p">.</span><span class="nx">remove</span><span class="p">();</span>
         <span class="k">this</span><span class="p">.</span><span class="nx">editingWire</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
      <span class="p">}</span>
   <span class="p">}</span><span class="o">,</span>
   
   <span class="c">/**</span>
<span class="c">    * @method onDragEnter</span>
<span class="c">    */</span>
   <span class="nx">onDragEnter</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="o">,</span><span class="nx">ddTargets</span><span class="p">)</span> <span class="p">{</span>
      
      <span class="c">// Prevention when the editing wire could not be created (due to nMaxWires)</span>
      <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">editingWire</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span><span class="o">;</span> <span class="p">}</span>
      
      <span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span> <span class="o">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">ddTargets</span><span class="p">.</span><span class="nx">length</span> <span class="o">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
         <span class="k">if</span><span class="p">(</span> <span class="k">this</span><span class="p">.</span><span class="nx">isValidWireTerminal</span><span class="p">(</span><span class="nx">ddTargets</span><span class="p">[</span><span class="nx">i</span><span class="p">])</span> <span class="p">)</span> <span class="p">{</span>
            <span class="nx">ddTargets</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">terminal</span><span class="p">.</span><span class="nx">setDropInvitation</span><span class="p">(</span><span class="kc">true</span><span class="p">);</span>
         <span class="p">}</span>
      <span class="p">}</span>
   <span class="p">}</span><span class="o">,</span>
   
   <span class="c">/**</span>
<span class="c">    * @method onDragOut</span>
<span class="c">    */</span>
   <span class="nx">onDragOut</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="o">,</span><span class="nx">ddTargets</span><span class="p">)</span> <span class="p">{</span> 
      
      <span class="c">// Prevention when the editing wire could not be created (due to nMaxWires)</span>
      <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">editingWire</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span><span class="o">;</span> <span class="p">}</span>
      
      <span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span> <span class="o">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">ddTargets</span><span class="p">.</span><span class="nx">length</span> <span class="o">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
         <span class="k">if</span><span class="p">(</span> <span class="k">this</span><span class="p">.</span><span class="nx">isValidWireTerminal</span><span class="p">(</span><span class="nx">ddTargets</span><span class="p">[</span><span class="nx">i</span><span class="p">])</span> <span class="p">)</span> <span class="p">{</span>
            <span class="nx">ddTargets</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">terminal</span><span class="p">.</span><span class="nx">setDropInvitation</span><span class="p">(</span><span class="kc">false</span><span class="p">);</span>
         <span class="p">}</span>
      <span class="p">}</span>
   <span class="p">}</span><span class="o">,</span>
   
   <span class="c">/**</span>
<span class="c">    * @method onDragDrop</span>
<span class="c">    */</span>
   <span class="nx">onDragDrop</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="o">,</span><span class="nx">ddTargets</span><span class="p">)</span> <span class="p">{</span>
      
      <span class="c">// Prevention when the editing wire could not be created (due to nMaxWires)</span>
      <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">editingWire</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span><span class="o">;</span> <span class="p">}</span>
      
      <span class="k">this</span><span class="p">.</span><span class="nx">onDragOut</span><span class="p">(</span><span class="nx">e</span><span class="o">,</span><span class="nx">ddTargets</span><span class="p">);</span>
      
      <span class="c">// Connect to the FIRST target terminal</span>
      <span class="kd">var</span> <span class="nx">targetTerminalProxy</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
      <span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span> <span class="o">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">ddTargets</span><span class="p">.</span><span class="nx">length</span> <span class="o">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
         <span class="k">if</span><span class="p">(</span> <span class="k">this</span><span class="p">.</span><span class="nx">isValidWireTerminal</span><span class="p">(</span><span class="nx">ddTargets</span><span class="p">[</span><span class="nx">i</span><span class="p">])</span> <span class="p">)</span> <span class="p">{</span>
            <span class="nx">targetTerminalProxy</span> <span class="o">=</span>  <span class="nx">ddTargets</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span>
            <span class="k">break</span><span class="o">;</span>
         <span class="p">}</span>
      <span class="p">}</span>

      <span class="c">// Quit if no valid terminal found</span>
      <span class="k">if</span><span class="p">(</span> <span class="o">!</span><span class="nx">targetTerminalProxy</span> <span class="p">)</span> <span class="p">{</span> 
         <span class="k">return</span><span class="o">;</span>
      <span class="p">}</span>
      
      <span class="c">// Remove the editing wire</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">editingWire</span><span class="p">.</span><span class="nx">remove</span><span class="p">();</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">editingWire</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
         
      <span class="c">// Don&#39;t create the wire if it already exists between the 2 terminals !!</span>
      <span class="kd">var</span> <span class="nx">termAlreadyConnected</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
      <span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span> <span class="o">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="p">.</span><span class="nx">wires</span><span class="p">.</span><span class="nx">length</span> <span class="o">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
         <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="p">.</span><span class="nx">wires</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">terminal1</span> <span class="o">==</span> <span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span><span class="p">(</span> <span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="p">.</span><span class="nx">wires</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">terminal2</span> <span class="o">==</span> <span class="nx">targetTerminalProxy</span><span class="p">.</span><span class="nx">terminal</span><span class="p">)</span> <span class="p">{</span>
               <span class="nx">termAlreadyConnected</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
               <span class="k">break</span><span class="o">;</span>
            <span class="p">}</span>
         <span class="p">}</span>
         <span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="p">.</span><span class="nx">wires</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">terminal2</span> <span class="o">==</span> <span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span><span class="p">(</span> <span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="p">.</span><span class="nx">wires</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">terminal1</span> <span class="o">==</span> <span class="nx">targetTerminalProxy</span><span class="p">.</span><span class="nx">terminal</span><span class="p">)</span> <span class="p">{</span>
               <span class="nx">termAlreadyConnected</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
               <span class="k">break</span><span class="o">;</span>
            <span class="p">}</span>
         <span class="p">}</span>
      <span class="p">}</span>
      
      <span class="c">// Create the wire only if the terminals aren&#39;t connected yet</span>
      <span class="k">if</span><span class="p">(</span><span class="nx">termAlreadyConnected</span><span class="p">)</span> <span class="p">{</span>
         <span class="c">//console.log(&quot;terminals already connected &quot;);</span>
         <span class="k">return</span><span class="o">;</span>
      <span class="p">}</span>
         
      <span class="kd">var</span> <span class="nx">parentEl</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="p">.</span><span class="nx">parentEl</span><span class="p">.</span><span class="nx">parentNode</span><span class="o">;</span>
      <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="p">.</span><span class="nx">container</span><span class="p">)</span> <span class="p">{</span>
         <span class="nx">parentEl</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="p">.</span><span class="nx">container</span><span class="p">.</span><span class="nx">layer</span><span class="p">.</span><span class="nx">el</span><span class="o">;</span>
      <span class="p">}</span>
      
      <span class="c">// Switch the order of the terminals if tgt as the &quot;alwaysSrc&quot; property</span>
      <span class="kd">var</span> <span class="nx">term1</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="o">;</span>
      <span class="kd">var</span> <span class="nx">term2</span> <span class="o">=</span> <span class="nx">targetTerminalProxy</span><span class="p">.</span><span class="nx">terminal</span><span class="o">;</span>
      <span class="k">if</span><span class="p">(</span><span class="nx">term2</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">alwaysSrc</span><span class="p">)</span> <span class="p">{</span>
         <span class="nx">term1</span> <span class="o">=</span> <span class="nx">targetTerminalProxy</span><span class="p">.</span><span class="nx">terminal</span><span class="o">;</span>
         <span class="nx">term2</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="o">;</span>
      <span class="p">}</span>
      
      <span class="c">// Check the number of wires for this terminal</span>
      <span class="kd">var</span> <span class="nx">tgtTerm</span> <span class="o">=</span> <span class="nx">targetTerminalProxy</span><span class="p">.</span><span class="nx">terminal</span><span class="o">;</span>
      <span class="k">if</span><span class="p">(</span> <span class="nx">tgtTerm</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">nMaxWires</span> <span class="o">==</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
         <span class="k">if</span><span class="p">(</span><span class="nx">tgtTerm</span><span class="p">.</span><span class="nx">wires</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">tgtTerm</span><span class="p">.</span><span class="nx">wires</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">remove</span><span class="p">();</span>
         <span class="p">}</span>
         <span class="kd">var</span> <span class="nx">w</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WireIt</span><span class="p">.</span><span class="nx">Wire</span><span class="p">(</span><span class="nx">term1</span><span class="o">,</span> <span class="nx">term2</span><span class="o">,</span> <span class="nx">parentEl</span><span class="o">,</span> <span class="nx">term1</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">wireConfig</span><span class="p">);</span>
         <span class="nx">w</span><span class="p">.</span><span class="nx">redraw</span><span class="p">();</span>
      <span class="p">}</span>
      <span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="nx">tgtTerm</span><span class="p">.</span><span class="nx">wires</span><span class="p">.</span><span class="nx">length</span> <span class="o">&lt;</span> <span class="nx">tgtTerm</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">nMaxWires</span><span class="p">)</span> <span class="p">{</span>
         <span class="kd">var</span> <span class="nx">w</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WireIt</span><span class="p">.</span><span class="nx">Wire</span><span class="p">(</span><span class="nx">term1</span><span class="o">,</span> <span class="nx">term2</span><span class="o">,</span> <span class="nx">parentEl</span><span class="o">,</span> <span class="nx">term1</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">wireConfig</span><span class="p">);</span>
         <span class="nx">w</span><span class="p">.</span><span class="nx">redraw</span><span class="p">();</span>
      <span class="p">}</span>
      <span class="c">/*else {</span>
<span class="c">         console.log(&quot;Cannot connect to this terminal: nMaxWires = &quot;, ddTargets[0].terminal.options.nMaxWires);</span>
<span class="c">      }*/</span>
      
   <span class="p">}</span><span class="o">,</span>
   
   
   <span class="c">// to distinct from other YAHOO.util.DragDrop objects</span>
   <span class="nx">isWireItTerminal</span><span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
   
   
   <span class="c">/**</span>
<span class="c">    * @method isValidWireTerminal</span>
<span class="c">    */</span>
   <span class="nx">isValidWireTerminal</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">DDterminal</span><span class="p">)</span> <span class="p">{</span>
      
      <span class="k">if</span><span class="p">(</span> <span class="o">!</span><span class="nx">DDterminal</span><span class="p">.</span><span class="nx">isWireItTerminal</span> <span class="p">)</span> <span class="p">{</span>
         <span class="k">return</span> <span class="kc">false</span><span class="o">;</span>
      <span class="p">}</span>
      
      <span class="c">// If this terminal has the type property:</span>
      <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">termConfig</span><span class="p">.</span><span class="nx">type</span><span class="p">)</span> <span class="p">{</span>
         <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">termConfig</span><span class="p">.</span><span class="nx">allowedTypes</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span><span class="p">(</span> <span class="nx">WireIt</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="nx">DDterminal</span><span class="p">.</span><span class="nx">termConfig</span><span class="p">.</span><span class="nx">type</span><span class="o">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">termConfig</span><span class="p">.</span><span class="nx">allowedTypes</span><span class="p">)</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span> <span class="p">)</span> <span class="p">{</span>
               <span class="k">return</span> <span class="kc">false</span><span class="o">;</span>
            <span class="p">}</span>
         <span class="p">}</span>
         <span class="k">else</span> <span class="p">{</span>
            <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">termConfig</span><span class="p">.</span><span class="nx">type</span> <span class="o">!=</span> <span class="nx">DDterminal</span><span class="p">.</span><span class="nx">termConfig</span><span class="p">.</span><span class="nx">type</span><span class="p">)</span> <span class="p">{</span>
               <span class="k">return</span> <span class="kc">false</span><span class="o">;</span>
            <span class="p">}</span>
         <span class="p">}</span>
      <span class="p">}</span>
      <span class="c">// The other terminal may have type property too:</span>
      <span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="nx">DDterminal</span><span class="p">.</span><span class="nx">termConfig</span><span class="p">.</span><span class="nx">type</span><span class="p">)</span> <span class="p">{</span>
         <span class="k">if</span><span class="p">(</span><span class="nx">DDterminal</span><span class="p">.</span><span class="nx">termConfig</span><span class="p">.</span><span class="nx">allowedTypes</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span><span class="p">(</span> <span class="nx">WireIt</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">termConfig</span><span class="p">.</span><span class="nx">type</span><span class="o">,</span> <span class="nx">DDterminal</span><span class="p">.</span><span class="nx">termConfig</span><span class="p">.</span><span class="nx">allowedTypes</span><span class="p">)</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span> <span class="p">)</span> <span class="p">{</span>
               <span class="k">return</span> <span class="kc">false</span><span class="o">;</span>
            <span class="p">}</span>
         <span class="p">}</span>
         <span class="k">else</span> <span class="p">{</span>
            <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">termConfig</span><span class="p">.</span><span class="nx">type</span> <span class="o">!=</span> <span class="nx">DDterminal</span><span class="p">.</span><span class="nx">termConfig</span><span class="p">.</span><span class="nx">type</span><span class="p">)</span> <span class="p">{</span>
               <span class="k">return</span> <span class="kc">false</span><span class="o">;</span>
            <span class="p">}</span>
         <span class="p">}</span>
      <span class="p">}</span>
      
      <span class="c">// Check the allowSelfWiring</span>
      <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="p">.</span><span class="nx">container</span><span class="p">)</span> <span class="p">{</span>
         <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="p">.</span><span class="nx">container</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">preventSelfWiring</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span><span class="p">(</span><span class="nx">DDterminal</span><span class="p">.</span><span class="nx">terminal</span><span class="p">.</span><span class="nx">container</span> <span class="o">==</span> <span class="k">this</span><span class="p">.</span><span class="nx">terminal</span><span class="p">.</span><span class="nx">container</span><span class="p">)</span> <span class="p">{</span>
               <span class="k">return</span> <span class="kc">false</span><span class="o">;</span>
            <span class="p">}</span>
         <span class="p">}</span>
      <span class="p">}</span>
      
      <span class="k">return</span> <span class="kc">true</span><span class="o">;</span>
   <span class="p">}</span>
   
<span class="p">});</span>


   
<span class="c">/**</span>
<span class="c"> * Terminals represent the end points of the &quot;wires&quot;</span>
<span class="c"> * @class Terminal</span>
<span class="c"> * @constructor</span>
<span class="c"> * @param {HTMLElement} parentEl Element that will contain the terminal</span>
<span class="c"> * @param {Object} options Configuration object</span>
<span class="c"> * @param {WireIt.Container} container (Optional) Container containing this terminal</span>
<span class="c"> */</span>
<span class="nx">WireIt</span><span class="p">.</span><span class="nx">Terminal</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">parentEl</span><span class="o">,</span> <span class="nx">options</span><span class="o">,</span> <span class="nx">container</span><span class="p">)</span> <span class="p">{</span>
   
   <span class="c">/**</span>
<span class="c">    * DOM parent element</span>
<span class="c">    * @property parentEl</span>
<span class="c">    * @type {HTMLElement}</span>
<span class="c">    */</span>
   <span class="k">this</span><span class="p">.</span><span class="nx">parentEl</span> <span class="o">=</span> <span class="nx">parentEl</span><span class="o">;</span>
   
   <span class="c">/**</span>
<span class="c">    * Container (optional). Parent container of this terminal</span>
<span class="c">    * @property container</span>
<span class="c">    * @type {WireIt.Container}</span>
<span class="c">    */</span>
   <span class="k">this</span><span class="p">.</span><span class="nx">container</span> <span class="o">=</span> <span class="nx">container</span><span class="o">;</span>
   
   <span class="c">/**</span>
<span class="c">    * List of the associated wires</span>
<span class="c">    * @property wires</span>
<span class="c">    * @type {Array}</span>
<span class="c">    */</span>
    <span class="k">this</span><span class="p">.</span><span class="nx">wires</span> <span class="o">=</span> <span class="p">[];</span>
   
   
   <span class="k">this</span><span class="p">.</span><span class="nx">setOptions</span><span class="p">(</span><span class="nx">options</span><span class="p">);</span>
   
   <span class="c">/**</span>
<span class="c">    * Event that is fired when a wire is added</span>
<span class="c">    * You can register this event with myTerminal.eventAddWire.subscribe(function(e,params) { var wire=params[0];}, scope);</span>
<span class="c">    * @event eventAddWire</span>
<span class="c">    */</span>
   <span class="k">this</span><span class="p">.</span><span class="nx">eventAddWire</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">util</span><span class="p">.</span><span class="nx">CustomEvent</span><span class="p">(</span><span class="s2">&quot;eventAddWire&quot;</span><span class="p">);</span>
   
   <span class="c">/**</span>
<span class="c">    * Event that is fired when a wire is removed</span>
<span class="c">    * You can register this event with myTerminal.eventRemoveWire.subscribe(function(e,params) { var wire=params[0];}, scope);</span>
<span class="c">    * @event eventRemoveWire</span>
<span class="c">    */</span>
   <span class="k">this</span><span class="p">.</span><span class="nx">eventRemoveWire</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">util</span><span class="p">.</span><span class="nx">CustomEvent</span><span class="p">(</span><span class="s2">&quot;eventRemoveWire&quot;</span><span class="p">);</span>
   
   <span class="c">/**</span>
<span class="c">    * DIV dom element that will display the Terminal</span>
<span class="c">    * @property el</span>
<span class="c">    * @type {HTMLElement}</span>
<span class="c">    */</span>
   <span class="k">this</span><span class="p">.</span><span class="nx">el</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
   
   
   <span class="k">this</span><span class="p">.</span><span class="nx">render</span><span class="p">();</span>
   
   <span class="c">// Create the TerminalProxy object to make the terminal editable</span>
   <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">editable</span><span class="p">)</span> <span class="p">{</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">dd</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WireIt</span><span class="p">.</span><span class="nx">TerminalProxy</span><span class="p">(</span><span class="k">this</span><span class="o">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">ddConfig</span><span class="p">);</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">scissors</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WireIt</span><span class="p">.</span><span class="nx">Scissors</span><span class="p">(</span><span class="k">this</span><span class="p">);</span>
   <span class="p">}</span>
<span class="p">};</span>

<span class="nx">WireIt</span><span class="p">.</span><span class="nx">Terminal</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="p">{</span>
   
   <span class="c">/**</span>
<span class="c">    * @method setOptions</span>
<span class="c">    * @param {Object} options</span>
<span class="c">    */</span>
   <span class="nx">setOptions</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">options</span><span class="p">)</span> <span class="p">{</span>
      
      <span class="c">/**</span>
<span class="c">       * &lt;p&gt;Object that contains the terminal configuration:&lt;/p&gt;</span>
<span class="c">       * </span>
<span class="c">       * &lt;ul&gt;</span>
<span class="c">       *   &lt;li&gt;&lt;b&gt;name&lt;/b&gt;: terminal name&lt;/li&gt;</span>
<span class="c">       *   &lt;li&gt;&lt;b&gt;direction&lt;/b&gt;: direction vector of the wires when connected to this terminal (default [0,1])&lt;/li&gt;</span>
<span class="c">       *   &lt;li&gt;&lt;b&gt;fakeDirection&lt;/b&gt;: direction vector of the &quot;editing&quot; wire when it started from this terminal (default to -direction)&lt;/li&gt;</span>
<span class="c">       *   &lt;li&gt;&lt;b&gt;editable&lt;/b&gt;: boolean that makes the terminal editable (default to true)&lt;/li&gt;</span>
<span class="c">       *   &lt;li&gt;&lt;b&gt;nMaxWires&lt;/b&gt;: maximum number of wires for this terminal (default to Infinity)&lt;/li&gt;</span>
<span class="c">       *   &lt;li&gt;&lt;b&gt;offsetPosition&lt;/b&gt;: offset position from the parentEl position. Can be an array [top,left] or an object {left: 100, bottom: 20} or {right: 10, top: 5} etc... (default to [0,0])&lt;/li&gt;</span>
<span class="c">       *   &lt;li&gt;&lt;b&gt;ddConfig&lt;/b&gt;: configuration of the WireIt.TerminalProxy object (only if editable)&lt;/li&gt;</span>
<span class="c">       *   &lt;li&gt;&lt;b&gt;alwaysSrc&lt;/b&gt;: alwaysSrc forces this terminal to be the src terminal in the wire config (default false, only if editable)&lt;/li&gt;</span>
<span class="c">       *   &lt;li&gt;&lt;b&gt;className&lt;/b&gt;: CSS class name of the terminal (default to &quot;WireIt-Terminal&quot;)&lt;/li&gt;</span>
<span class="c">       *   &lt;li&gt;&lt;b&gt;connectedClassName&lt;/b&gt;: CSS class added to the terminal when it is connected (default to &quot;WireIt-Terminal-connected&quot;)&lt;/li&gt;</span>
<span class="c">       *   &lt;li&gt;&lt;b&gt;dropinviteClassName&lt;/b&gt;: CSS class added for drop invitation (default to &quot;WireIt-Terminal-dropinvite&quot;)&lt;/li&gt;</span>
<span class="c">       * &lt;/ul&gt;</span>
<span class="c">       * @property options</span>
<span class="c">       */</span>  
      <span class="k">this</span><span class="p">.</span><span class="nx">options</span> <span class="o">=</span> <span class="p">{};</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">name</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">name</span><span class="o">;</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">direction</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">direction</span> <span class="o">||</span> <span class="p">[</span><span class="mi">0</span><span class="o">,</span><span class="mi">1</span><span class="p">];</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">fakeDirection</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">fakeDirection</span> <span class="o">||</span> <span class="p">[</span><span class="o">-</span><span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">direction</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">,-</span><span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">direction</span><span class="p">[</span><span class="mi">1</span><span class="p">]];</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">className</span> <span class="o">||</span> <span class="nx">CSS_PREFIX</span><span class="o">+</span><span class="s1">&#39;Terminal&#39;</span><span class="o">;</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">connectedClassName</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">connectedClassName</span> <span class="o">||</span> <span class="nx">CSS_PREFIX</span><span class="o">+</span><span class="s1">&#39;Terminal-connected&#39;</span><span class="o">;</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">dropinviteClassName</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">dropinviteClassName</span> <span class="o">||</span> <span class="nx">CSS_PREFIX</span><span class="o">+</span><span class="s1">&#39;Terminal-dropinvite&#39;</span><span class="o">;</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">editable</span> <span class="o">=</span> <span class="nx">lang</span><span class="p">.</span><span class="nx">isUndefined</span><span class="p">(</span><span class="nx">options</span><span class="p">.</span><span class="nx">editable</span><span class="p">)</span> <span class="o">?</span> <span class="kc">true</span> <span class="o">:</span> <span class="nx">options</span><span class="p">.</span><span class="nx">editable</span><span class="o">;</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">nMaxWires</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">nMaxWires</span> <span class="o">||</span> <span class="kc">Infinity</span><span class="o">;</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">wireConfig</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">wireConfig</span> <span class="o">||</span> <span class="p">{};</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">editingWireConfig</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">editingWireConfig</span> <span class="o">||</span> <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">wireConfig</span><span class="o">;</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">offsetPosition</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">offsetPosition</span><span class="o">;</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">alwaysSrc</span> <span class="o">=</span> <span class="nx">lang</span><span class="p">.</span><span class="nx">isUndefined</span><span class="p">(</span><span class="nx">options</span><span class="p">.</span><span class="nx">alwaysSrc</span><span class="p">)</span> <span class="o">?</span> <span class="kc">false</span> <span class="o">:</span> <span class="nx">options</span><span class="p">.</span><span class="nx">alwaysSrc</span><span class="o">;</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">ddConfig</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">ddConfig</span> <span class="o">||</span> <span class="p">{};</span>
   <span class="p">}</span><span class="o">,</span>

   <span class="c">/**</span>
<span class="c">    * Show or hide the drop invitation. (by adding/removing this.options.dropinviteClassName CSS class)</span>
<span class="c">    * @method setDropInvitation</span>
<span class="c">    * @param {Boolean} display Show the invitation if true, hide it otherwise</span>
<span class="c">    */</span>
   <span class="nx">setDropInvitation</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">display</span><span class="p">)</span> <span class="p">{</span>
      <span class="k">if</span><span class="p">(</span><span class="nx">display</span><span class="p">)</span> <span class="p">{</span>
         <span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">el</span><span class="o">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">dropinviteClassName</span><span class="p">);</span>
      <span class="p">}</span>
      <span class="k">else</span> <span class="p">{</span>
         <span class="nx">Dom</span><span class="p">.</span><span class="nx">removeClass</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">el</span><span class="o">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">dropinviteClassName</span><span class="p">);</span>
      <span class="p">}</span>
   <span class="p">}</span><span class="o">,</span>

   <span class="c">/**</span>
<span class="c">    * Render the DOM of the terminal</span>
<span class="c">    * @method render</span>
<span class="c">    */</span>
   <span class="nx">render</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
   
      <span class="c">// Create the DIV element</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">el</span> <span class="o">=</span> <span class="nx">WireIt</span><span class="p">.</span><span class="nx">cn</span><span class="p">(</span><span class="s1">&#39;div&#39;</span><span class="o">,</span> <span class="p">{</span><span class="nx">className</span><span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">className</span><span class="p">}</span> <span class="p">);</span>
      <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">name</span><span class="p">)</span> <span class="p">{</span> <span class="k">this</span><span class="p">.</span><span class="nx">el</span><span class="p">.</span><span class="nx">title</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">name</span><span class="o">;</span> <span class="p">}</span>

      <span class="c">// Set the offset position</span>
      <span class="kd">var</span> <span class="nx">pos</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">offsetPosition</span><span class="o">;</span>
      <span class="k">if</span><span class="p">(</span><span class="nx">pos</span><span class="p">)</span> <span class="p">{</span>
         <span class="c">// Kept old version [x,y] for retro-compatibility</span>
         <span class="k">if</span><span class="p">(</span> <span class="nx">lang</span><span class="p">.</span><span class="nx">isArray</span><span class="p">(</span><span class="nx">pos</span><span class="p">)</span> <span class="p">)</span> <span class="p">{</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">el</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="nx">pos</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="s2">&quot;px&quot;</span><span class="o">;</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">el</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">top</span> <span class="o">=</span> <span class="nx">pos</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">+</span><span class="s2">&quot;px&quot;</span><span class="o">;</span>
         <span class="p">}</span>
         <span class="c">// New version: {top: 32, left: 23}</span>
         <span class="k">else</span> <span class="k">if</span><span class="p">(</span> <span class="nx">lang</span><span class="p">.</span><span class="nx">isObject</span><span class="p">(</span><span class="nx">pos</span><span class="p">)</span> <span class="p">)</span> <span class="p">{</span>
            <span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">key</span> <span class="k">in</span> <span class="nx">pos</span><span class="p">)</span> <span class="p">{</span>
               <span class="k">if</span><span class="p">(</span><span class="nx">pos</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">key</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="nx">pos</span><span class="p">[</span><span class="nx">key</span><span class="p">]</span> <span class="o">!=</span> <span class="s2">&quot;&quot;</span><span class="p">){</span>
                  <span class="k">this</span><span class="p">.</span><span class="nx">el</span><span class="p">.</span><span class="nx">style</span><span class="p">[</span><span class="nx">key</span><span class="p">]</span> <span class="o">=</span> <span class="nx">pos</span><span class="p">[</span><span class="nx">key</span><span class="p">]</span><span class="o">+</span><span class="s2">&quot;px&quot;</span><span class="o">;</span>
               <span class="p">}</span>
            <span class="p">}</span>
         <span class="p">}</span>
      <span class="p">}</span>
   
      <span class="c">// Append the element to the parent</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">parentEl</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">el</span><span class="p">);</span>
   <span class="p">}</span><span class="o">,</span>


   <span class="c">/**</span>
<span class="c">    * Add a wire to this terminal.</span>
<span class="c">    * @method addWire</span>
<span class="c">    * @param {WireIt.Wire} wire Wire instance to add</span>
<span class="c">    */</span>
   <span class="nx">addWire</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">wire</span><span class="p">)</span> <span class="p">{</span>
   
      <span class="c">// Adds this wire to the list of connected wires :</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">wires</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">wire</span><span class="p">);</span>
   
      <span class="c">// Set class indicating that the wire is connected</span>
      <span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">el</span><span class="o">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">connectedClassName</span><span class="p">);</span>
   
      <span class="c">// Fire the event</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">eventAddWire</span><span class="p">.</span><span class="nx">fire</span><span class="p">(</span><span class="nx">wire</span><span class="p">);</span>
   <span class="p">}</span><span class="o">,</span>

   <span class="c">/**</span>
<span class="c">    * Remove a wire</span>
<span class="c">    * @method removeWire</span>
<span class="c">    * @param {WireIt.Wire} wire Wire instance to remove</span>
<span class="c">    */</span>
   <span class="nx">removeWire</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">wire</span><span class="p">)</span> <span class="p">{</span>
      <span class="kd">var</span> <span class="nx">index</span> <span class="o">=</span> <span class="nx">WireIt</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="nx">wire</span><span class="o">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">wires</span><span class="p">)</span><span class="o">,</span> <span class="nx">w</span><span class="o">;</span>   
      <span class="k">if</span><span class="p">(</span> <span class="nx">index</span> <span class="o">!=</span> <span class="o">-</span><span class="mi">1</span> <span class="p">)</span> <span class="p">{</span>
         
         <span class="k">this</span><span class="p">.</span><span class="nx">wires</span><span class="p">[</span><span class="nx">index</span><span class="p">].</span><span class="nx">destroy</span><span class="p">();</span>
         
         <span class="k">this</span><span class="p">.</span><span class="nx">wires</span><span class="p">[</span><span class="nx">index</span><span class="p">]</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
         <span class="k">this</span><span class="p">.</span><span class="nx">wires</span> <span class="o">=</span> <span class="nx">WireIt</span><span class="p">.</span><span class="nx">compact</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">wires</span><span class="p">);</span>
      
         <span class="c">// Remove the connected class if it has no more wires:</span>
         <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">wires</span><span class="p">.</span><span class="nx">length</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">Dom</span><span class="p">.</span><span class="nx">removeClass</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">el</span><span class="o">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">connectedClassName</span><span class="p">);</span>
         <span class="p">}</span>
      
         <span class="c">// Fire the event</span>
         <span class="k">this</span><span class="p">.</span><span class="nx">eventRemoveWire</span><span class="p">.</span><span class="nx">fire</span><span class="p">(</span><span class="nx">wire</span><span class="p">);</span>
      <span class="p">}</span>
   <span class="p">}</span><span class="o">,</span>


   <span class="c">/**</span>
<span class="c">    * This function is a temporary test. I added the border width while traversing the DOM and</span>
<span class="c">    * I calculated the offset to center the wire in the terminal just after its creation</span>
<span class="c">    * @method getXY</span>
<span class="c">    */</span>
   <span class="nx">getXY</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
   
      <span class="kd">var</span> <span class="nx">layerEl</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">container</span> <span class="o">&amp;&amp;</span> <span class="k">this</span><span class="p">.</span><span class="nx">container</span><span class="p">.</span><span class="nx">layer</span> <span class="o">?</span> <span class="k">this</span><span class="p">.</span><span class="nx">container</span><span class="p">.</span><span class="nx">layer</span><span class="p">.</span><span class="nx">el</span> <span class="o">:</span> <span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="o">;</span>

      <span class="kd">var</span> <span class="nx">obj</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">el</span><span class="o">;</span>
      <span class="kd">var</span> <span class="nx">curleft</span> <span class="o">=</span> <span class="nx">curtop</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
     	<span class="k">if</span> <span class="p">(</span><span class="nx">obj</span><span class="p">.</span><span class="nx">offsetParent</span><span class="p">)</span> <span class="p">{</span>
     		<span class="k">do</span> <span class="p">{</span>
     			<span class="nx">curleft</span> <span class="o">+=</span> <span class="nx">obj</span><span class="p">.</span><span class="nx">offsetLeft</span><span class="o">;</span>
     			<span class="nx">curtop</span> <span class="o">+=</span> <span class="nx">obj</span><span class="p">.</span><span class="nx">offsetTop</span><span class="o">;</span>
     			<span class="nx">obj</span> <span class="o">=</span> <span class="nx">obj</span><span class="p">.</span><span class="nx">offsetParent</span><span class="o">;</span>
     		<span class="p">}</span> <span class="k">while</span> <span class="p">(</span> <span class="o">!!</span><span class="nx">obj</span> <span class="o">&amp;&amp;</span> <span class="nx">obj</span> <span class="o">!=</span> <span class="nx">layerEl</span><span class="p">);</span>
     	<span class="p">}</span>
  	
     	<span class="k">return</span> <span class="p">[</span><span class="nx">curleft</span><span class="o">+</span><span class="mi">15</span><span class="o">,</span><span class="nx">curtop</span><span class="o">+</span><span class="mi">15</span><span class="p">];</span>
   <span class="p">}</span><span class="o">,</span>



   <span class="c">/**</span>
<span class="c">    * Remove the terminal from the DOM</span>
<span class="c">    * @method remove</span>
<span class="c">    */</span>
   <span class="nx">remove</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
      <span class="c">// This isn&#39;t very nice but...</span>
      <span class="c">// the method Wire.remove calls Terminal.removeWire to remove the reference</span>
      <span class="k">while</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">wires</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
         <span class="k">this</span><span class="p">.</span><span class="nx">wires</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">remove</span><span class="p">();</span>
      <span class="p">}</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">parentEl</span><span class="p">.</span><span class="nx">removeChild</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">el</span><span class="p">);</span>
      
      <span class="c">// Remove all event listeners</span>
      <span class="nx">Event</span><span class="p">.</span><span class="nx">purgeElement</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">el</span><span class="p">);</span>
      
      <span class="c">// Remove scissors widget</span>
      <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">scissors</span><span class="p">)</span> <span class="p">{</span>
         <span class="nx">Event</span><span class="p">.</span><span class="nx">purgeElement</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">scissors</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="s1">&#39;element&#39;</span><span class="p">));</span>
      <span class="p">}</span>
      
   <span class="p">}</span><span class="o">,</span>



   <span class="c">/**</span>
<span class="c">    * Returns a list of all the terminals connecter to this terminal through its wires.</span>
<span class="c">    * @method getConnectedTerminals</span>
<span class="c">    * @return  {Array}  List of all connected terminals</span>
<span class="c">    */</span>
   <span class="nx">getConnectedTerminals</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
      <span class="kd">var</span> <span class="nx">terminalList</span> <span class="o">=</span> <span class="p">[];</span>
      <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">wires</span><span class="p">)</span> <span class="p">{</span>
         <span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span> <span class="o">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="k">this</span><span class="p">.</span><span class="nx">wires</span><span class="p">.</span><span class="nx">length</span> <span class="o">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">terminalList</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">wires</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">getOtherTerminal</span><span class="p">(</span><span class="k">this</span><span class="p">));</span>
         <span class="p">}</span>
      <span class="p">}</span>
      <span class="k">return</span> <span class="nx">terminalList</span><span class="o">;</span>
   <span class="p">}</span><span class="o">,</span>


   <span class="c">/**</span>
<span class="c">    * Redraw all the wires connected to this terminal</span>
<span class="c">    * @method redrawAllWires</span>
<span class="c">    */</span>
   <span class="nx">redrawAllWires</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
      <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">wires</span><span class="p">)</span> <span class="p">{</span>
         <span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span> <span class="o">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="k">this</span><span class="p">.</span><span class="nx">wires</span><span class="p">.</span><span class="nx">length</span> <span class="o">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">wires</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">redraw</span><span class="p">();</span>
         <span class="p">}</span>
      <span class="p">}</span>
   <span class="p">}</span><span class="o">,</span>
   
   <span class="c">/** </span>
<span class="c">    * Remove all wires</span>
<span class="c">    * @method removeAllWires</span>
<span class="c">    */</span>
   <span class="nx">removeAllWires</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
      <span class="k">while</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">wires</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
         <span class="k">this</span><span class="p">.</span><span class="nx">wires</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">remove</span><span class="p">();</span>
      <span class="p">}</span>
   <span class="p">}</span>

<span class="p">};</span>

 <span class="c">/**</span>
<span class="c">  * Class that extends Terminal to differenciate Input/Output terminals</span>
<span class="c">  * @class WireIt.util.TerminalInput</span>
<span class="c">  * @extends WireIt.Terminal</span>
<span class="c">  * @constructor</span>
<span class="c">  * @param {HTMLElement} parentEl Parent dom element</span>
<span class="c">  * @param {Object} options configuration object</span>
<span class="c">  * @param {WireIt.Container} container (Optional) Container containing this terminal</span>
<span class="c">  */</span>
<span class="nx">WireIt</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">TerminalInput</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">parentEl</span><span class="o">,</span> <span class="nx">options</span><span class="o">,</span> <span class="nx">container</span><span class="p">)</span> <span class="p">{</span>
   <span class="nx">WireIt</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">TerminalInput</span><span class="p">.</span><span class="nx">superclass</span><span class="p">.</span><span class="nx">constructor</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="o">,</span><span class="nx">parentEl</span><span class="o">,</span> <span class="nx">options</span><span class="o">,</span> <span class="nx">container</span><span class="p">);</span>
<span class="p">};</span>
<span class="nx">lang</span><span class="p">.</span><span class="nx">extend</span><span class="p">(</span><span class="nx">WireIt</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">TerminalInput</span><span class="o">,</span> <span class="nx">WireIt</span><span class="p">.</span><span class="nx">Terminal</span><span class="o">,</span> <span class="p">{</span>
   
   <span class="c">/**</span>
<span class="c">    * Override setOptions to add the default options for TerminalInput</span>
<span class="c">    * @method setOptions</span>
<span class="c">    */</span>
   <span class="nx">setOptions</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">options</span><span class="p">)</span> <span class="p">{</span>
      
      <span class="nx">WireIt</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">TerminalInput</span><span class="p">.</span><span class="nx">superclass</span><span class="p">.</span><span class="nx">setOptions</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="o">,</span><span class="nx">options</span><span class="p">);</span>
      
      <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">direction</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">direction</span> <span class="o">||</span> <span class="p">[</span><span class="mi">0</span><span class="o">,-</span><span class="mi">1</span><span class="p">];</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">fakeDirection</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">fakeDirection</span> <span class="o">||</span> <span class="p">[</span><span class="mi">0</span><span class="o">,</span><span class="mi">1</span><span class="p">];</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">ddConfig</span> <span class="o">=</span> <span class="p">{</span>
         <span class="nx">type</span><span class="o">:</span> <span class="s2">&quot;input&quot;</span><span class="o">,</span>
         <span class="nx">allowedTypes</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;output&quot;</span><span class="p">]</span>
      <span class="p">};</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">nMaxWires</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">nMaxWires</span> <span class="o">||</span> <span class="mi">1</span><span class="o">;</span>
   <span class="p">}</span>
   
<span class="p">});</span>




 <span class="c">/**</span>
<span class="c">  * Class that extends Terminal to differenciate Input/Output terminals</span>
<span class="c">  * @class WireIt.util.TerminalOutput</span>
<span class="c">  * @extends WireIt.Terminal</span>
<span class="c">  * @constructor</span>
<span class="c">  * @param {HTMLElement} parentEl Parent dom element</span>
<span class="c">  * @param {Object} options configuration object</span>
<span class="c">  * @param {WireIt.Container} container (Optional) Container containing this terminal</span>
<span class="c">  */</span>
<span class="nx">WireIt</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">TerminalOutput</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">parentEl</span><span class="o">,</span> <span class="nx">options</span><span class="o">,</span> <span class="nx">container</span><span class="p">)</span> <span class="p">{</span>
   <span class="nx">WireIt</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">TerminalOutput</span><span class="p">.</span><span class="nx">superclass</span><span class="p">.</span><span class="nx">constructor</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="o">,</span><span class="nx">parentEl</span><span class="o">,</span> <span class="nx">options</span><span class="o">,</span> <span class="nx">container</span><span class="p">);</span>
<span class="p">};</span>
<span class="nx">lang</span><span class="p">.</span><span class="nx">extend</span><span class="p">(</span><span class="nx">WireIt</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">TerminalOutput</span><span class="o">,</span> <span class="nx">WireIt</span><span class="p">.</span><span class="nx">Terminal</span><span class="o">,</span> <span class="p">{</span>
   
   <span class="c">/**</span>
<span class="c">    * Override setOptions to add the default options for TerminalOutput</span>
<span class="c">    * @method setOptions</span>
<span class="c">    */</span>
   <span class="nx">setOptions</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">options</span><span class="p">)</span> <span class="p">{</span>
      
      <span class="nx">WireIt</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">TerminalOutput</span><span class="p">.</span><span class="nx">superclass</span><span class="p">.</span><span class="nx">setOptions</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="o">,</span><span class="nx">options</span><span class="p">);</span>
      
      <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">direction</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">direction</span> <span class="o">||</span> <span class="p">[</span><span class="mi">0</span><span class="o">,</span><span class="mi">1</span><span class="p">];</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">fakeDirection</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">fakeDirection</span> <span class="o">||</span> <span class="p">[</span><span class="mi">0</span><span class="o">,-</span><span class="mi">1</span><span class="p">];</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">ddConfig</span> <span class="o">=</span> <span class="p">{</span>
         <span class="nx">type</span><span class="o">:</span> <span class="s2">&quot;output&quot;</span><span class="o">,</span>
         <span class="nx">allowedTypes</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;input&quot;</span><span class="p">]</span>
      <span class="p">};</span>
      <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">alwaysSrc</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
   <span class="p">}</span>
   
<span class="p">});</span>


<span class="p">})();</span>
</pre></div>
                    </div>
			</div>
		</div>
		<div class="yui-b">
            <div class="nav">

                    <div id="moduleList" class="module">
                        <h4>Modules</h4>
                        <ul class="content">
                                <li class="selected"><a href="module_WireIt.html" title="WireIt">WireIt</a></li>
                        </ul>
                    </div>

                    <div id="classList" class="module">
                        <h4>Classes</h4>
                        <ul class="content">
                                <li class=""><a href="inputEx.BaseField.html" title="inputEx.BaseField">inputEx.BaseField</a></li>
                                <li class=""><a href="inputEx.Field.html" title="inputEx.Field">inputEx.Field</a></li>
                                <li class=""><a href="WireIt.CanvasElement.html" title="WireIt.CanvasElement">WireIt.CanvasElement</a></li>
                                <li class=""><a href="WireIt.Container.html" title="WireIt.Container">WireIt.Container</a></li>
                                <li class=""><a href="WireIt.FormContainer.html" title="WireIt.FormContainer">WireIt.FormContainer</a></li>
                                <li class=""><a href="WireIt.ImageContainer.html" title="WireIt.ImageContainer">WireIt.ImageContainer</a></li>
                                <li class=""><a href="WireIt.InOutContainer.html" title="WireIt.InOutContainer">WireIt.InOutContainer</a></li>
                                <li class=""><a href="WireIt.Layer.html" title="WireIt.Layer">WireIt.Layer</a></li>
                                <li class=""><a href="WireIt.LayerMap.html" title="WireIt.LayerMap">WireIt.LayerMap</a></li>
                                <li class=""><a href="WireIt.ModuleProxy.html" title="WireIt.ModuleProxy">WireIt.ModuleProxy</a></li>
                                <li class=""><a href="WireIt.Scissors.html" title="WireIt.Scissors">WireIt.Scissors</a></li>
                                <li class=""><a href="WireIt.Terminal.html" title="WireIt.Terminal">WireIt.Terminal</a></li>
                                <li class=""><a href="WireIt.TerminalProxy.html" title="WireIt.TerminalProxy">WireIt.TerminalProxy</a></li>
                                <li class=""><a href="WireIt.util.Anim.html" title="WireIt.util.Anim">WireIt.util.Anim</a></li>
                                <li class=""><a href="WireIt.util.DD.html" title="WireIt.util.DD">WireIt.util.DD</a></li>
                                <li class=""><a href="WireIt.util.DDResize.html" title="WireIt.util.DDResize">WireIt.util.DDResize</a></li>
                                <li class=""><a href="WireIt.util.TerminalInput.html" title="WireIt.util.TerminalInput">WireIt.util.TerminalInput</a></li>
                                <li class=""><a href="WireIt.util.TerminalOutput.html" title="WireIt.util.TerminalOutput">WireIt.util.TerminalOutput</a></li>
                                <li class=""><a href="WireIt.Wire.html" title="WireIt.Wire">WireIt.Wire</a></li>
                                <li class=""><a href="WireIt.WireIt.html" title="WireIt.WireIt">WireIt.WireIt</a></li>
                                <li class=""><a href="WireIt.WiringEditor.html" title="WireIt.WiringEditor">WireIt.WiringEditor</a></li>
                        </ul>
                    </div>

                    <div id="fileList" class="module">
                        <h4>Files</h4>
                        <ul class="content">        
                                <li class=""><a href="ajax.js.html" title="ajax.js">ajax.js</a></li>
                                <li class=""><a href="Anim.js.html" title="Anim.js">Anim.js</a></li>
                                <li class=""><a href="CanvasElement.js.html" title="CanvasElement.js">CanvasElement.js</a></li>
                                <li class=""><a href="Container.js.html" title="Container.js">Container.js</a></li>
                                <li class=""><a href="DD.js.html" title="DD.js">DD.js</a></li>
                                <li class=""><a href="DDResize.js.html" title="DDResize.js">DDResize.js</a></li>
                                <li class=""><a href="FormContainer-beta.js.html" title="FormContainer-beta.js">FormContainer-beta.js</a></li>
                                <li class=""><a href="gears.js.html" title="gears.js">gears.js</a></li>
                                <li class=""><a href="ImageContainer.js.html" title="ImageContainer.js">ImageContainer.js</a></li>
                                <li class=""><a href="InOutContainer.js.html" title="InOutContainer.js">InOutContainer.js</a></li>
                                <li class=""><a href="json-rpc.js.html" title="json-rpc.js">json-rpc.js</a></li>
                                <li class=""><a href="Layer.js.html" title="Layer.js">Layer.js</a></li>
                                <li class=""><a href="LayerMap.js.html" title="LayerMap.js">LayerMap.js</a></li>
                                <li class=""><a href="Layout.js.html" title="Layout.js">Layout.js</a></li>
                                <li class="selected"><a href="Terminal.js.html" title="Terminal.js">Terminal.js</a></li>
                                <li class=""><a href="WirableField-beta.js.html" title="WirableField-beta.js">WirableField-beta.js</a></li>
                                <li class=""><a href="Wire.js.html" title="Wire.js">Wire.js</a></li>
                                <li class=""><a href="WireIt.js.html" title="WireIt.js">WireIt.js</a></li>
                                <li class=""><a href="WiringEditor.js.html" title="WiringEditor.js">WiringEditor.js</a></li>
                        </ul>
                    </div>





            </div>
		</div>
	</div>
	<div id="ft">
        <hr />
        Copyright &copy; 2009 Eric Abouaf. All rights reserved.
	</div>
</div>
<script type="text/javascript">
    ALL_YUI_PROPS = [{"url": "WireIt.WiringEditor.html#property_adapters", "access": "", "host": "WireIt.WiringEditor", "type": "property", "name": "adapters"}, {"url": "WireIt.Layer.html#method_addContainer", "access": "", "host": "WireIt.Layer", "type": "method", "name": "addContainer"}, {"url": "WireIt.WiringEditor.html#method_addModule", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "addModule"}, {"url": "WireIt.WiringEditor.html#method_addModuleToList", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "addModuleToList"}, {"url": "WireIt.Container.html#method_addTerminal", "access": "", "host": "WireIt.Container", "type": "method", "name": "addTerminal"}, {"url": "WireIt.Layer.html#method_addWire", "access": "", "host": "WireIt.Layer", "type": "method", "name": "addWire"}, {"url": "WireIt.Terminal.html#method_addWire", "access": "", "host": "WireIt.Terminal", "type": "method", "name": "addWire"}, {"url": "WireIt.WiringEditor.html#property_Ajax", "access": "", "host": "WireIt.WiringEditor", "type": "property", "name": "Ajax"}, {"url": "WireIt.WiringEditor.html#property_alertPanel", "access": "", "host": "WireIt.WiringEditor", "type": "property", "name": "alertPanel"}, {"url": "WireIt.Container.html#property_bodyEl", "access": "", "host": "WireIt.Container", "type": "property", "name": "bodyEl"}, {"url": "WireIt.WiringEditor.html#method_buildModulesList", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "buildModulesList"}, {"url": "WireIt.Layer.html#method_clear", "access": "", "host": "WireIt.Layer", "type": "method", "name": "clear"}, {"url": "WireIt.Layer.html#method_clearExplode", "access": "", "host": "WireIt.Layer", "type": "method", "name": "clearExplode"}, {"url": "WireIt.WireIt.html#method_cn", "access": "", "host": "WireIt.WireIt", "type": "method", "name": "cn"}, {"url": "WireIt.WireIt.html#method_compact", "access": "", "host": "WireIt.WireIt", "type": "method", "name": "compact"}, {"url": "WireIt.WiringEditor.html#property_config", "access": "", "host": "WireIt.WiringEditor", "type": "property", "name": "config"}, {"url": "WireIt.Terminal.html#property_container", "access": "", "host": "WireIt.Terminal", "type": "property", "name": "container"}, {"url": "WireIt.Layer.html#property_containers", "access": "", "host": "WireIt.Layer", "type": "property", "name": "containers"}, {"url": "WireIt.TerminalProxy.html#method_createFrame", "access": "", "host": "WireIt.TerminalProxy", "type": "method", "name": "createFrame"}, {"url": "WireIt.CanvasElement.html#method_destroy", "access": "", "host": "WireIt.CanvasElement", "type": "method", "name": "destroy"}, {"url": "WireIt.LayerMap.html#method_draw", "access": "", "host": "WireIt.LayerMap", "type": "method", "name": "draw"}, {"url": "WireIt.Wire.html#method_drawArrows", "access": "", "host": "WireIt.Wire", "type": "method", "name": "drawArrows"}, {"url": "WireIt.Wire.html#method_drawBezierArrows", "access": "", "host": "WireIt.Wire", "type": "method", "name": "drawBezierArrows"}, {"url": "WireIt.Wire.html#method_drawBezierCurve", "access": "", "host": "WireIt.Wire", "type": "method", "name": "drawBezierCurve"}, {"url": "WireIt.LayerMap.html#method_drawContainers", "access": "", "host": "WireIt.LayerMap", "type": "method", "name": "drawContainers"}, {"url": "WireIt.Wire.html#method_drawStraight", "access": "", "host": "WireIt.Wire", "type": "method", "name": "drawStraight"}, {"url": "WireIt.LayerMap.html#method_drawWires", "access": "", "host": "WireIt.LayerMap", "type": "method", "name": "drawWires"}, {"url": "WireIt.Container.html#property_el", "access": "", "host": "WireIt.Container", "type": "property", "name": "el"}, {"url": "WireIt.Layer.html#property_el", "access": "", "host": "WireIt.Layer", "type": "property", "name": "el"}, {"url": "WireIt.Terminal.html#property_el", "access": "", "host": "WireIt.Terminal", "type": "property", "name": "el"}, {"url": "WireIt.WiringEditor.html#property_el", "access": "", "host": "WireIt.WiringEditor", "type": "property", "name": "el"}, {"url": "WireIt.CanvasElement.html#property_element", "access": "", "host": "WireIt.CanvasElement", "type": "property", "name": "element"}, {"url": "WireIt.TerminalProxy.html#method_endDrag", "access": "", "host": "WireIt.TerminalProxy", "type": "method", "name": "endDrag"}, {"url": "WireIt.ModuleProxy.html#method_endDrag", "access": "", "host": "WireIt.ModuleProxy", "type": "method", "name": "endDrag"}, {"url": "WireIt.Layer.html#event_eventAddContainer", "access": "", "host": "WireIt.Layer", "type": "event", "name": "eventAddContainer"}, {"url": "WireIt.Container.html#event_eventAddWire", "access": "", "host": "WireIt.Container", "type": "event", "name": "eventAddWire"}, {"url": "WireIt.Layer.html#event_eventAddWire", "access": "", "host": "WireIt.Layer", "type": "event", "name": "eventAddWire"}, {"url": "WireIt.Terminal.html#event_eventAddWire", "access": "", "host": "WireIt.Terminal", "type": "event", "name": "eventAddWire"}, {"url": "WireIt.Layer.html#event_eventChanged", "access": "", "host": "WireIt.Layer", "type": "event", "name": "eventChanged"}, {"url": "WireIt.Layer.html#event_eventContainerDragged", "access": "", "host": "WireIt.Layer", "type": "event", "name": "eventContainerDragged"}, {"url": "WireIt.Layer.html#event_eventContainerResized", "access": "", "host": "WireIt.Layer", "type": "event", "name": "eventContainerResized"}, {"url": "WireIt.Wire.html#event_eventMouseClick", "access": "", "host": "WireIt.Wire", "type": "event", "name": "eventMouseClick"}, {"url": "WireIt.Wire.html#event_eventMouseIn", "access": "", "host": "WireIt.Wire", "type": "event", "name": "eventMouseIn"}, {"url": "WireIt.Wire.html#event_eventMouseMove", "access": "", "host": "WireIt.Wire", "type": "event", "name": "eventMouseMove"}, {"url": "WireIt.Wire.html#event_eventMouseOut", "access": "", "host": "WireIt.Wire", "type": "event", "name": "eventMouseOut"}, {"url": "WireIt.Layer.html#event_eventRemoveContainer", "access": "", "host": "WireIt.Layer", "type": "event", "name": "eventRemoveContainer"}, {"url": "WireIt.Container.html#event_eventRemoveWire", "access": "", "host": "WireIt.Container", "type": "event", "name": "eventRemoveWire"}, {"url": "WireIt.Layer.html#event_eventRemoveWire", "access": "", "host": "WireIt.Layer", "type": "event", "name": "eventRemoveWire"}, {"url": "WireIt.Terminal.html#event_eventRemoveWire", "access": "", "host": "WireIt.Terminal", "type": "event", "name": "eventRemoveWire"}, {"url": "WireIt.util.DDResize.html#event_eventResize", "access": "", "host": "WireIt.util.DDResize", "type": "event", "name": "eventResize"}, {"url": "WireIt.TerminalProxy.html#property_fakeTerminal", "access": "", "host": "WireIt.TerminalProxy", "type": "property", "name": "fakeTerminal"}, {"url": "WireIt.WiringEditor.html#property_Gears", "access": "", "host": "WireIt.WiringEditor", "type": "property", "name": "Gears"}, {"url": "WireIt.Container.html#method_getConfig", "access": "", "host": "WireIt.Container", "type": "method", "name": "getConfig"}, {"url": "WireIt.Terminal.html#method_getConnectedTerminals", "access": "", "host": "WireIt.Terminal", "type": "method", "name": "getConnectedTerminals"}, {"url": "WireIt.CanvasElement.html#method_getContext", "access": "", "host": "WireIt.CanvasElement", "type": "method", "name": "getContext"}, {"url": "WireIt.WireIt.html#method_getIntStyle", "access": "", "host": "WireIt.WireIt", "type": "method", "name": "getIntStyle"}, {"url": "WireIt.Layer.html#method__getMouseEvtPos", "access": "", "host": "WireIt.Layer", "type": "method", "name": "_getMouseEvtPos"}, {"url": "WireIt.Wire.html#method_getOtherTerminal", "access": "", "host": "WireIt.Wire", "type": "method", "name": "getOtherTerminal"}, {"url": "WireIt.WiringEditor.html#method_getPipeByName", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "getPipeByName"}, {"url": "WireIt.Container.html#method_getTerminal", "access": "", "host": "WireIt.Container", "type": "method", "name": "getTerminal"}, {"url": "WireIt.Container.html#method_getValue", "access": "", "host": "WireIt.Container", "type": "method", "name": "getValue"}, {"url": "WireIt.WiringEditor.html#method_getValue", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "getValue"}, {"url": "WireIt.FormContainer.html#method_getValue", "access": "", "host": "WireIt.FormContainer", "type": "method", "name": "getValue"}, {"url": "WireIt.Layer.html#method_getWiring", "access": "", "host": "WireIt.Layer", "type": "method", "name": "getWiring"}, {"url": "WireIt.Terminal.html#method_getXY", "access": "", "host": "WireIt.Terminal", "type": "method", "name": "getXY"}, {"url": "WireIt.WiringEditor.html#property_helpPanel", "access": "", "host": "WireIt.WiringEditor", "type": "property", "name": "helpPanel"}, {"url": "WireIt.Scissors.html#method_hide", "access": "", "host": "WireIt.Scissors", "type": "method", "name": "hide"}, {"url": "WireIt.Scissors.html#method_hideNow", "access": "", "host": "WireIt.Scissors", "type": "method", "name": "hideNow"}, {"url": "WireIt.WireIt.html#method_indexOf", "access": "", "host": "WireIt.WireIt", "type": "method", "name": "indexOf"}, {"url": "WireIt.Layer.html#method_initContainers", "access": "", "host": "WireIt.Layer", "type": "method", "name": "initContainers"}, {"url": "WireIt.LayerMap.html#method_initEvents", "access": "", "host": "WireIt.LayerMap", "type": "method", "name": "initEvents"}, {"url": "WireIt.Scissors.html#method_initScissors", "access": "", "host": "WireIt.Scissors", "type": "method", "name": "initScissors"}, {"url": "WireIt.Container.html#method_initTerminals", "access": "", "host": "WireIt.Container", "type": "method", "name": "initTerminals"}, {"url": "WireIt.Layer.html#method_initWires", "access": "", "host": "WireIt.Layer", "type": "method", "name": "initWires"}, {"url": "WireIt.WiringEditor.html#method_inputFilterTimer", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "inputFilterTimer"}, {"url": "WireIt.TerminalProxy.html#method_isValidWireTerminal", "access": "", "host": "WireIt.TerminalProxy", "type": "method", "name": "isValidWireTerminal"}, {"url": "WireIt.WiringEditor.html#property_JsonRpc", "access": "", "host": "WireIt.WiringEditor", "type": "property", "name": "JsonRpc"}, {"url": "WireIt.Container.html#property_layer", "access": "", "host": "WireIt.Container", "type": "property", "name": "layer"}, {"url": "WireIt.LayerMap.html#property_layer", "access": "", "host": "WireIt.LayerMap", "type": "property", "name": "layer"}, {"url": "WireIt.WiringEditor.html#property_layer", "access": "", "host": "WireIt.WiringEditor", "type": "property", "name": "layer"}, {"url": "WireIt.WiringEditor.html#property_layout", "access": "", "host": "WireIt.WiringEditor", "type": "property", "name": "layout"}, {"url": "WireIt.LayerMap.html#method_layoutAnim", "access": "", "host": "WireIt.LayerMap", "type": "method", "name": "layoutAnim"}, {"url": "WireIt.WiringEditor.html#property_leftEl", "access": "", "host": "WireIt.WiringEditor", "type": "property", "name": "leftEl"}, {"url": "WireIt.WiringEditor.html#method_load", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "load"}, {"url": "WireIt.WiringEditor.html#method_loadPipe", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "loadPipe"}, {"url": "WireIt.WiringEditor.html#property_modulesByName", "access": "", "host": "WireIt.WiringEditor", "type": "property", "name": "modulesByName"}, {"url": "WireIt.Scissors.html#method_mouseOver", "access": "", "host": "WireIt.Scissors", "type": "method", "name": "mouseOver"}, {"url": "WireIt.util.Anim.html#method_moveWireItWires", "access": "", "host": "WireIt.util.Anim", "type": "method", "name": "moveWireItWires"}, {"url": "WireIt.util.DDResize.html#property_myConf", "access": "", "host": "WireIt.util.DDResize", "type": "property", "name": "myConf"}, {"url": "WireIt.Container.html#method_onAddWire", "access": "", "host": "WireIt.Container", "type": "method", "name": "onAddWire"}, {"url": "WireIt.Layer.html#method_onAddWire", "access": "", "host": "WireIt.Layer", "type": "method", "name": "onAddWire"}, {"url": "inputEx.Field.html#method_onAddWire", "access": "", "host": "inputEx.Field", "type": "method", "name": "onAddWire"}, {"url": "WireIt.Wire.html#method_onClick", "access": "", "host": "WireIt.Wire", "type": "method", "name": "onClick"}, {"url": "WireIt.Container.html#method_onCloseButton", "access": "", "host": "WireIt.Container", "type": "method", "name": "onCloseButton"}, {"url": "WireIt.WiringEditor.html#method_onDelete", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "onDelete"}, {"url": "WireIt.TerminalProxy.html#method_onDrag", "access": "", "host": "WireIt.TerminalProxy", "type": "method", "name": "onDrag"}, {"url": "WireIt.util.DD.html#method_onDrag", "access": "", "host": "WireIt.util.DD", "type": "method", "name": "onDrag"}, {"url": "WireIt.util.DDResize.html#method_onDrag", "access": "", "host": "WireIt.util.DDResize", "type": "method", "name": "onDrag"}, {"url": "WireIt.TerminalProxy.html#method_onDragDrop", "access": "", "host": "WireIt.TerminalProxy", "type": "method", "name": "onDragDrop"}, {"url": "WireIt.ModuleProxy.html#method_onDragDrop", "access": "", "host": "WireIt.ModuleProxy", "type": "method", "name": "onDragDrop"}, {"url": "WireIt.TerminalProxy.html#method_onDragEnter", "access": "", "host": "WireIt.TerminalProxy", "type": "method", "name": "onDragEnter"}, {"url": "WireIt.TerminalProxy.html#method_onDragOut", "access": "", "host": "WireIt.TerminalProxy", "type": "method", "name": "onDragOut"}, {"url": "WireIt.WiringEditor.html#method_onHelp", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "onHelp"}, {"url": "WireIt.LayerMap.html#method_onLayerScroll", "access": "", "host": "WireIt.LayerMap", "type": "method", "name": "onLayerScroll"}, {"url": "WireIt.WiringEditor.html#method_onLoadSuccess", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "onLoadSuccess"}, {"url": "WireIt.Container.html#method_onMouseDown", "access": "", "host": "WireIt.Container", "type": "method", "name": "onMouseDown"}, {"url": "WireIt.LayerMap.html#method_onMouseDown", "access": "", "host": "WireIt.LayerMap", "type": "method", "name": "onMouseDown"}, {"url": "WireIt.util.DDResize.html#method_onMouseDown", "access": "", "host": "WireIt.util.DDResize", "type": "method", "name": "onMouseDown"}, {"url": "WireIt.LayerMap.html#method_onMouseMove", "access": "", "host": "WireIt.LayerMap", "type": "method", "name": "onMouseMove"}, {"url": "WireIt.Wire.html#method_onMouseMove", "access": "", "host": "WireIt.Wire", "type": "method", "name": "onMouseMove"}, {"url": "WireIt.LayerMap.html#method_onMouseUp", "access": "", "host": "WireIt.LayerMap", "type": "method", "name": "onMouseUp"}, {"url": "WireIt.WiringEditor.html#method_onNew", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "onNew"}, {"url": "WireIt.Container.html#method_onRemoveWire", "access": "", "host": "WireIt.Container", "type": "method", "name": "onRemoveWire"}, {"url": "WireIt.Layer.html#method_onRemoveWire", "access": "", "host": "WireIt.Layer", "type": "method", "name": "onRemoveWire"}, {"url": "inputEx.Field.html#method_onRemoveWire", "access": "", "host": "inputEx.Field", "type": "method", "name": "onRemoveWire"}, {"url": "WireIt.Container.html#method_onResize", "access": "", "host": "WireIt.Container", "type": "method", "name": "onResize"}, {"url": "WireIt.WiringEditor.html#method_onSave", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "onSave"}, {"url": "WireIt.Layer.html#method_onWireClick", "access": "", "host": "WireIt.Layer", "type": "method", "name": "onWireClick"}, {"url": "WireIt.Wire.html#method_onWireClick", "access": "", "host": "WireIt.Wire", "type": "method", "name": "onWireClick"}, {"url": "WireIt.Wire.html#method_onWireIn", "access": "", "host": "WireIt.Wire", "type": "method", "name": "onWireIn"}, {"url": "WireIt.Layer.html#method_onWireMouseMove", "access": "", "host": "WireIt.Layer", "type": "method", "name": "onWireMouseMove"}, {"url": "WireIt.Wire.html#method_onWireMove", "access": "", "host": "WireIt.Wire", "type": "method", "name": "onWireMove"}, {"url": "WireIt.Wire.html#method_onWireOut", "access": "", "host": "WireIt.Wire", "type": "method", "name": "onWireOut"}, {"url": "WireIt.Container.html#property_options", "access": "", "host": "WireIt.Container", "type": "property", "name": "options"}, {"url": "WireIt.Layer.html#property_options", "access": "", "host": "WireIt.Layer", "type": "property", "name": "options"}, {"url": "WireIt.LayerMap.html#property_options", "access": "", "host": "WireIt.LayerMap", "type": "property", "name": "options"}, {"url": "WireIt.Terminal.html#property_options", "access": "", "host": "WireIt.Terminal", "type": "property", "name": "options"}, {"url": "WireIt.Wire.html#property_options", "access": "", "host": "WireIt.Wire", "type": "property", "name": "options"}, {"url": "WireIt.WiringEditor.html#property_options", "access": "", "host": "WireIt.WiringEditor", "type": "property", "name": "options"}, {"url": "WireIt.Terminal.html#property_parentEl", "access": "", "host": "WireIt.Terminal", "type": "property", "name": "parentEl"}, {"url": "WireIt.Wire.html#property_parentEl", "access": "", "host": "WireIt.Wire", "type": "property", "name": "parentEl"}, {"url": "WireIt.Wire.html#method_redraw", "access": "", "host": "WireIt.Wire", "type": "method", "name": "redraw"}, {"url": "WireIt.Container.html#method_redrawAllTerminals", "access": "", "host": "WireIt.Container", "type": "method", "name": "redrawAllTerminals"}, {"url": "WireIt.Terminal.html#method_redrawAllWires", "access": "", "host": "WireIt.Terminal", "type": "method", "name": "redrawAllWires"}, {"url": "WireIt.Container.html#method_remove", "access": "", "host": "WireIt.Container", "type": "method", "name": "remove"}, {"url": "WireIt.Terminal.html#method_remove", "access": "", "host": "WireIt.Terminal", "type": "method", "name": "remove"}, {"url": "WireIt.Wire.html#method_remove", "access": "", "host": "WireIt.Wire", "type": "method", "name": "remove"}, {"url": "WireIt.Layer.html#method_removeAllContainers", "access": "", "host": "WireIt.Layer", "type": "method", "name": "removeAllContainers"}, {"url": "WireIt.Container.html#method_removeAllTerminals", "access": "", "host": "WireIt.Container", "type": "method", "name": "removeAllTerminals"}, {"url": "WireIt.Terminal.html#method_removeAllWires", "access": "", "host": "WireIt.Terminal", "type": "method", "name": "removeAllWires"}, {"url": "WireIt.Layer.html#method_removeContainer", "access": "", "host": "WireIt.Layer", "type": "method", "name": "removeContainer"}, {"url": "WireIt.Container.html#method_removeFocus", "access": "", "host": "WireIt.Container", "type": "method", "name": "removeFocus"}, {"url": "WireIt.Terminal.html#method_removeWire", "access": "", "host": "WireIt.Terminal", "type": "method", "name": "removeWire"}, {"url": "WireIt.Container.html#method_render", "access": "", "host": "WireIt.Container", "type": "method", "name": "render"}, {"url": "WireIt.ImageContainer.html#method_render", "access": "", "host": "WireIt.ImageContainer", "type": "method", "name": "render"}, {"url": "WireIt.Layer.html#method_render", "access": "", "host": "WireIt.Layer", "type": "method", "name": "render"}, {"url": "WireIt.Terminal.html#method_render", "access": "", "host": "WireIt.Terminal", "type": "method", "name": "render"}, {"url": "WireIt.FormContainer.html#method_render", "access": "", "host": "WireIt.FormContainer", "type": "method", "name": "render"}, {"url": "inputEx.Field.html#method_render", "access": "", "host": "inputEx.Field", "type": "method", "name": "render"}, {"url": "WireIt.WiringEditor.html#method_renderAccordion", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "renderAccordion"}, {"url": "WireIt.WiringEditor.html#method_renderButtons", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "renderButtons"}, {"url": "WireIt.FormContainer.html#method_renderForm", "access": "", "host": "WireIt.FormContainer", "type": "method", "name": "renderForm"}, {"url": "WireIt.WiringEditor.html#method_renderLoadPanel", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "renderLoadPanel"}, {"url": "WireIt.WiringEditor.html#method_renderPropertiesForm", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "renderPropertiesForm"}, {"url": "WireIt.WiringEditor.html#method_renderSavedStatus", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "renderSavedStatus"}, {"url": "inputEx.Field.html#method_renderTerminal", "access": "", "host": "inputEx.Field", "type": "method", "name": "renderTerminal"}, {"url": "WireIt.WiringEditor.html#method_saveModule", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "saveModule"}, {"url": "WireIt.WiringEditor.html#method_saveModuleFailure", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "saveModuleFailure"}, {"url": "WireIt.WiringEditor.html#method_saveModuleSuccess", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "saveModuleSuccess"}, {"url": "WireIt.Scissors.html#method_scissorClick", "access": "", "host": "WireIt.Scissors", "type": "method", "name": "scissorClick"}, {"url": "WireIt.LayerMap.html#method_scrollLayer", "access": "", "host": "WireIt.LayerMap", "type": "method", "name": "scrollLayer"}, {"url": "WireIt.FormContainer.html#method_setBackReferenceOnFieldOptionsRecursively", "access": "", "host": "WireIt.FormContainer", "type": "method", "name": "setBackReferenceOnFieldOptionsRecursively"}, {"url": "WireIt.Container.html#method_setBody", "access": "", "host": "WireIt.Container", "type": "method", "name": "setBody"}, {"url": "WireIt.CanvasElement.html#method_SetCanvasRegion", "access": "", "host": "WireIt.CanvasElement", "type": "method", "name": "SetCanvasRegion"}, {"url": "WireIt.Terminal.html#method_setDropInvitation", "access": "", "host": "WireIt.Terminal", "type": "method", "name": "setDropInvitation"}, {"url": "WireIt.Container.html#method_setFocus", "access": "", "host": "WireIt.Container", "type": "method", "name": "setFocus"}, {"url": "WireIt.Container.html#method_setOptions", "access": "", "host": "WireIt.Container", "type": "method", "name": "setOptions"}, {"url": "WireIt.ImageContainer.html#method_setOptions", "access": "", "host": "WireIt.ImageContainer", "type": "method", "name": "setOptions"}, {"url": "WireIt.InOutContainer.html#method_setOptions", "access": "", "host": "WireIt.InOutContainer", "type": "method", "name": "setOptions"}, {"url": "WireIt.Layer.html#method_setOptions", "access": "", "host": "WireIt.Layer", "type": "method", "name": "setOptions"}, {"url": "WireIt.LayerMap.html#method_setOptions", "access": "", "host": "WireIt.LayerMap", "type": "method", "name": "setOptions"}, {"url": "WireIt.Terminal.html#method_setOptions", "access": "", "host": "WireIt.Terminal", "type": "method", "name": "setOptions"}, {"url": "WireIt.util.TerminalInput.html#method_setOptions", "access": "", "host": "WireIt.util.TerminalInput", "type": "method", "name": "setOptions"}, {"url": "WireIt.util.TerminalOutput.html#method_setOptions", "access": "", "host": "WireIt.util.TerminalOutput", "type": "method", "name": "setOptions"}, {"url": "WireIt.Wire.html#method_setOptions", "access": "", "host": "WireIt.Wire", "type": "method", "name": "setOptions"}, {"url": "WireIt.WiringEditor.html#method_setOptions", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "setOptions"}, {"url": "WireIt.FormContainer.html#method_setOptions", "access": "", "host": "WireIt.FormContainer", "type": "method", "name": "setOptions"}, {"url": "inputEx.Field.html#method_setOptions", "access": "", "host": "inputEx.Field", "type": "method", "name": "setOptions"}, {"url": "WireIt.Scissors.html#method_setPosition", "access": "", "host": "WireIt.Scissors", "type": "method", "name": "setPosition"}, {"url": "WireIt.util.Anim.html#method_setTerminals", "access": "", "host": "WireIt.util.Anim", "type": "method", "name": "setTerminals"}, {"url": "WireIt.util.DD.html#method_setTerminals", "access": "", "host": "WireIt.util.DD", "type": "method", "name": "setTerminals"}, {"url": "WireIt.Container.html#method_setValue", "access": "", "host": "WireIt.Container", "type": "method", "name": "setValue"}, {"url": "WireIt.FormContainer.html#method_setValue", "access": "", "host": "WireIt.FormContainer", "type": "method", "name": "setValue"}, {"url": "WireIt.Layer.html#method_setWiring", "access": "", "host": "WireIt.Layer", "type": "method", "name": "setWiring"}, {"url": "WireIt.Scissors.html#method_show", "access": "", "host": "WireIt.Scissors", "type": "method", "name": "show"}, {"url": "WireIt.WireIt.html#method_sn", "access": "", "host": "WireIt.WireIt", "type": "method", "name": "sn"}, {"url": "WireIt.LayerMap.html#method_Spring", "access": "", "host": "WireIt.LayerMap", "type": "method", "name": "Spring"}, {"url": "WireIt.TerminalProxy.html#method_startDrag", "access": "", "host": "WireIt.TerminalProxy", "type": "method", "name": "startDrag"}, {"url": "WireIt.ModuleProxy.html#method_startDrag", "access": "", "host": "WireIt.ModuleProxy", "type": "method", "name": "startDrag"}, {"url": "WireIt.LayerMap.html#method_startDynamicLayout", "access": "", "host": "WireIt.LayerMap", "type": "method", "name": "startDynamicLayout"}, {"url": "WireIt.LayerMap.html#method_stopDynamicLayout", "access": "", "host": "WireIt.LayerMap", "type": "method", "name": "stopDynamicLayout"}, {"url": "WireIt.TerminalProxy.html#property_termConfig", "access": "", "host": "WireIt.TerminalProxy", "type": "property", "name": "termConfig"}, {"url": "WireIt.Scissors.html#property__terminal", "access": "", "host": "WireIt.Scissors", "type": "property", "name": "_terminal"}, {"url": "WireIt.TerminalProxy.html#property_terminal", "access": "", "host": "WireIt.TerminalProxy", "type": "property", "name": "terminal"}, {"url": "WireIt.Wire.html#property_terminal1", "access": "", "host": "WireIt.Wire", "type": "property", "name": "terminal1"}, {"url": "WireIt.Wire.html#property_terminal2", "access": "", "host": "WireIt.Wire", "type": "property", "name": "terminal2"}, {"url": "WireIt.Container.html#property_terminals", "access": "", "host": "WireIt.Container", "type": "property", "name": "terminals"}, {"url": "WireIt.WiringEditor.html#method_updateLoadPanelList", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "updateLoadPanelList"}, {"url": "WireIt.WireIt.html#property_util", "access": "", "host": "WireIt.WireIt", "type": "property", "name": "util"}, {"url": "WireIt.Wire.html#method_wireDrawnAt", "access": "", "host": "WireIt.Wire", "type": "method", "name": "wireDrawnAt"}, {"url": "WireIt.util.Anim.html#property__WireItTerminals", "access": "", "host": "WireIt.util.Anim", "type": "property", "name": "_WireItTerminals"}, {"url": "WireIt.util.DD.html#property__WireItTerminals", "access": "", "host": "WireIt.util.DD", "type": "property", "name": "_WireItTerminals"}, {"url": "WireIt.Container.html#property_wires", "access": "", "host": "WireIt.Container", "type": "property", "name": "wires"}, {"url": "WireIt.Layer.html#property_wires", "access": "", "host": "WireIt.Layer", "type": "property", "name": "wires"}, {"url": "WireIt.Terminal.html#property_wires", "access": "", "host": "WireIt.Terminal", "type": "property", "name": "wires"}];
</script>
</body>
</html>
